expo-ble-app-demo/ble/protocol/Constants.ts

56 lines
1.6 KiB
TypeScript

export const PROTOCOL_VERSION = "1.0.0";
export const BLE_UUIDS = {
SERVICE: '000002c4-0000-1000-8000-00805f9b34fb',
BROADCAST_CHARACTERISTIC: "000002c1-0000-1000-8000-00805f9b34fb",
WRITE_CHARACTERISTIC: '000002c5-0000-1000-8000-00805f9b34fb',
READ_CHARACTERISTIC: '000002c6-0000-1000-8000-00805f9b34fb',
REQUEST_MTU: 512,
} as const;
export const FRAME_CONSTANTS = {
HEAD_DEVICE_TO_APP: 0xb0,
HEAD_APP_TO_DEVICE: 0xb1,
MAX_DATA_SIZE: 496,
HEADER_SIZE: 8,
FOOTER_SIZE: 1,
FRAME_INTERVAL: 35, // package transfer idle interval in ms, set 35 ms for ble device have enough time to process data
} as const;
export type FRAME_HEAD = typeof FRAME_CONSTANTS.HEAD_DEVICE_TO_APP | typeof FRAME_CONSTANTS.HEAD_APP_TO_DEVICE;
export const COMMAND_TYPES = {
ACTIVATION_QUERY: 0x01,
OTA_PACKAGE: 0x02,
TRANSFER_BOOT_ANIMATION: 0x03,
TRANSFER_AVI_VIDEO: 0x04,
TRANSFER_ANI_VIDEO: 0x05,
TRANSFER_JPEG_IMAGE: 0x06,
VERSION_QUERY: 0x07,
UPDATE_ACTIVATION_TIME: 0x08,
DEVICE_INFO_SETTINGS: 0x0d,
DEVICE_IDENTITY_CHECK: 0x0e,
} as const;
export type APP_COMMAND_TYPES = typeof COMMAND_TYPES[keyof typeof COMMAND_TYPES];
export const RESPONSE_TYPES = {
ACTIVATION_STATUS: 0x01,
VERSION_INFO: 0x07,
DEVICE_INFO_REPORT: 0x0d,
IDENTITY_CHECK_RESULT: 0x0e,
} as const;
export const ERROR_CODES = {
DISCONNECT: -100,
TRANSFER_TIMEOUT: -101,
INVALID_RESPONSE: -102,
PROTOCOL_ERROR: -103,
CHECKSUM_MISMATCH: -104,
JSON_PARSE_ERROR: -105,
DEVICE_NOT_ACTIVATED: -106,
INVALID_FILE_FORMAT: -107,
TRANSFER_IN_PROGRESS: -108,
INSUFFICIENT_SPACE: -109,
} as const;