SEC_Warehouse/utils/ble/core/state.js

39 lines
917 B
JavaScript

// BLE 状态机阶段定义,便于页面层按阶段展示文案/按钮状态。
export const BLE_STAGE = Object.freeze({
IDLE: 'IDLE',
ADAPTER_OPENED: 'ADAPTER_OPENED',
DISCOVERING: 'DISCOVERING',
CONNECTING: 'CONNECTING',
CONNECTED: 'CONNECTED',
SERVICE_DISCOVERED: 'SERVICE_DISCOVERED',
AUTHORIZING: 'AUTHORIZING',
AUTHORIZED: 'AUTHORIZED',
OPERATING: 'OPERATING',
DISCONNECTED: 'DISCONNECTED'
})
/**
* 创建 BLE 运行时状态。
* 注意:返回的是可变对象,由 bleCore 内部统一 patch。
*/
export function createBleState() {
return {
stage: BLE_STAGE.IDLE,
available: false,
discovering: false,
connected: false,
deviceId: '',
serviceId: '',
profileId: '',
reconnectCount: 0,
lastError: null,
deviceMap: {},
characteristics: {},
auth: {
bound: null,
keyMatched: false,
lastStateCode: null
}
}
}