SEC_Warehouse/utils/ble/parsers/index.js

36 lines
890 B
JavaScript

import { parseDeviceInfo, parseEd713Radar, parseEd719Radar, parseStateCode } from './commonParser'
import { DEVICE_PROFILE } from '../protocols/profiles'
export { parseDeviceInfo, parseStateCode }
/**
* 雷达数据统一解析入口:
* 优先按已识别 profile 解析,未知时再根据签名字节推断。
*/
export function parseRadarData(payload, profileId = DEVICE_PROFILE.UNKNOWN) {
if (profileId === DEVICE_PROFILE.ED713) {
return parseEd713Radar(payload)
}
if (profileId === DEVICE_PROFILE.ED719) {
return parseEd719Radar(payload)
}
const bytes = payload instanceof Uint8Array ? payload : new Uint8Array(payload)
if (bytes[3] === 0x7C) {
return parseEd713Radar(bytes)
}
if (bytes[3] === 0x67) {
return parseEd719Radar(bytes)
}
return {
type: 'UNKNOWN',
valid: false,
reason: 'UNKNOWN_SIGNATURE',
raw: bytes
}
}