mirror of
https://github.com/pybricks/pybricks-code.git
synced 2026-09-12 01:23:52 +00:00
75 lines
2.3 KiB
TypeScript
75 lines
2.3 KiB
TypeScript
// SPDX-License-Identifier: MIT
|
|
// Copyright (c) 2020-2021 The Pybricks Authors
|
|
|
|
import { takeEvery } from 'typed-redux-saga/macro';
|
|
import {
|
|
BleUartActionType,
|
|
BleUartDidFailToWriteAction,
|
|
} from '../ble-nordic-uart-service/actions';
|
|
import {
|
|
BlePybricksServiceEventActionType,
|
|
BlePybricksServiceEventProtocolErrorAction,
|
|
} from '../ble-pybricks-service/actions';
|
|
import {
|
|
BleDeviceActionType,
|
|
BleDeviceDidFailToConnectAction,
|
|
BleDeviceFailToConnectReasonType,
|
|
} from '../ble/actions';
|
|
import {
|
|
LicenseActionType,
|
|
LicenseDidFailToFetchListAction,
|
|
} from '../licenses/actions';
|
|
import {
|
|
BootloaderConnectionActionType,
|
|
BootloaderConnectionDidErrorAction,
|
|
BootloaderConnectionDidFailToConnectAction,
|
|
BootloaderConnectionFailureReason,
|
|
} from '../lwp3-bootloader/actions';
|
|
|
|
function bleDeviceDidFailToConnect(action: BleDeviceDidFailToConnectAction): void {
|
|
if (action.reason === BleDeviceFailToConnectReasonType.Unknown) {
|
|
console.error(action.err);
|
|
}
|
|
}
|
|
|
|
function pybricksProtocolError(
|
|
action: BlePybricksServiceEventProtocolErrorAction,
|
|
): void {
|
|
console.error(action.err);
|
|
}
|
|
|
|
function bleDataDidFailToWrite(action: BleUartDidFailToWriteAction): void {
|
|
console.error(action.err);
|
|
}
|
|
|
|
function bootloaderDidFailToConnect(
|
|
action: BootloaderConnectionDidFailToConnectAction,
|
|
): void {
|
|
if (action.reason === BootloaderConnectionFailureReason.Unknown) {
|
|
console.error(action.err);
|
|
}
|
|
}
|
|
|
|
function bootloaderDidError(action: BootloaderConnectionDidErrorAction): void {
|
|
console.error(action.err);
|
|
}
|
|
|
|
function licenseDidFailToFetch(action: LicenseDidFailToFetchListAction): void {
|
|
console.error(`Failed to fetch licenses: ${action.reason.statusText}`);
|
|
}
|
|
|
|
export default function* (): Generator {
|
|
yield* takeEvery(BleDeviceActionType.DidFailToConnect, bleDeviceDidFailToConnect);
|
|
yield* takeEvery(
|
|
BlePybricksServiceEventActionType.ProtocolError,
|
|
pybricksProtocolError,
|
|
);
|
|
yield* takeEvery(BleUartActionType.DidFailToWrite, bleDataDidFailToWrite);
|
|
yield* takeEvery(
|
|
BootloaderConnectionActionType.DidFailToConnect,
|
|
bootloaderDidFailToConnect,
|
|
);
|
|
yield* takeEvery(BootloaderConnectionActionType.DidError, bootloaderDidError);
|
|
yield* takeEvery(LicenseActionType.DidFailToFetchList, licenseDidFailToFetch);
|
|
}
|