export const PROTOCOL_VERSION = "1.0.0"; export const BLE_UUIDS = { SERVICE: '000002c4-0000-1000-8000-00805f9b34fb', SERVICE_SHORT: 'ae00', BROADCAST_CHARACTERISTIC: "000002c1-0000-1000-8000-00805f9b34fb", WRITE_CHARACTERISTIC: '000002c5-0000-1000-8000-00805f9b34fb', READ_CHARACTERISTIC: '000002c6-0000-1000-8000-00805f9b34fb', REQUEST_MTU: 517, } as const; export const FRAME_CONSTANTS = { HEAD_DEVICE_TO_APP: 0xb0, // HEAD_APP_TO_DEVICE: 0xc7, HEAD_APP_TO_DEVICE: 0xb1, MAX_DATA_SIZE: 496, HEADER_SIZE: 8, FOOTER_SIZE: 1, FRAME_INTERVAL: 35, } 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 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;