单片机SDK说明

2019-04-15 12:18发布

 

SDK说明

 

一、协议结构

开始位置 类型 值 说明 0 BYTE 0xaa 起始标志 1 BYTE 0x55 起始标志 2 WORD 从1开始累加 消息流水号 4 WORD 见表2 命令ID 6 WORD 实际消息长度 消息体长度 8 HEX [n]   消息体 8+n WORD 流水号到消息体CRC 校验 表0

二、接口说明

  1. 注册SDK
接口名称:HANDER SdkHanderReg(char *ComPath,UploadInterfaceCb cb); 功能描述:注册串口设备以及单片机上报数据的回调函数; 参数说明:ComPath:指定要和单片机通信的串口设备文件;                              Cb:单片机上报数据的回调函数,用于解析单片机上报的数据报文;   回调函数说明: 定义:       typedef int (*UploadInterfaceCb)(void *msg); 功能:       命令解析函数,供SDK收到单片机上报数据时调用; 参数:       msg:已经通过CRC校验且去掉了起始字符的完整命令包;  2、反注册SDK 接口名称:int SdkHanderUnreg(HANDER hander); 功能描述:反注册SDK,整个单片机通信业务结束以后,调用改函数; 参数说明:hander:注册SDK时返回的句柄,不能为空;

3、数据发送

接口名称:int SdkHanderSendData(HANDER hander,void *msg,int len); 功能描述:发送数据到单片机; 参数说明:hander:注册SDK时返回的句柄,不能为空;   Msg:要发送到单片机的消息[只包括消息头和消息体],起始标志和校验字段,SDK会自动封包发送;   Len:要发送的消息长度;
  • 命令描述

3.1      SDK通用应答

ID: 0x0001

起始字节 类型 值 描述 0 BYTE 0/1 0:成功;1:失败 1 WORD   回应的命令ID 3 WORD   回应的消息流水号 表1

3.2      通知消息

ID:0x0002

起始字节 类型 值 描述 0 BYTE 见表3 通知消息的类型 1 BYTE[2]   Type=0/1/2,该值第一位表示结果;type=3,表示2组服务器上线抓状态 3 BYTE   0:禁用;1:正在拨号;2:拨号成功 4 BYTE   信号质量[0-5] 5 BYTE GPS定位状态 0:未定位;1已定位 6 DWORD 报警 808协议 32位报警数据 表2 注:type=0/1/2时消息类型后面只需要1个字节来发送通知结构,只有type=3时才有后面的系统运行状态字段;   通知消息描述 消息ID 打印机打印结果通知 0x0 日志导出结果通知 0x1 行驶记录结果导出通知 0x2 主系统运行状态通知 0x3 待扩展 ... 表3

3.3    控制消息

ID:0x0003

起始字节 类型 值 描述 0 BYTE 见表5 控制消息的子ID 1 DWORD   需要设置数据到单片机的就有该字段 5 BYTE[4]   该字段预留,以备协议扩展 表4   控制消息子ID描述 消息ID 描述 关闭最小系统 0x0 控制关机 重启最小系统 0x1 重启最小系统 定时关机信息设置 0x2 设置从当前时间到下次开机的时长(s),用后续DWORD字段 清除定时关机信息 0x03 取消定时关机相关信息 主系统休眠 0x04 控制系统休眠 校时 0x05 设置主系统时钟到单片机,如果RTC在MCU,此协议预留 设置IO输出状态 0x06 设置IO输出电平,通道:bit0-7;值:bit8-15 备电电池控制 0x07 控制备电电池开关 摄像头电源控制 0x08 控制两组摄像头电源通断 表5

3.4 单片机相关信息查询

ID 0x0004

起始字节 类型 值 描述 0 BYTE   查询属性类型(具体后面再定义) 表6

3.5 单片机通用应答

ID 0x8001

消息体同3.1  

3.6    CAN 数据上报

ID 0x8002

消息体见具体CANBUS协议 4字节ID+8字节数据,也可以再单片机端按照808协议封装数据包透传,具体按需求实现  

3.7    电源相关状态上报

ID  0x8003

起始字节 类型 值 描述 0 BYTE 0/1 ACC状态 1 BYTE 0/1 LOCK状态 2 BYTE 0/1 劫警IO状态 3 BYTE 0/1 是否休眠 4 DOWRD   主电电压 mv 表7  

3.8    时钟同步

ID  0x8004

起始字节 类型 值 描述 0 DWORD   系统以s为单位的时间戳 表8 3.9    形式记录数据上报                ID 0x8005 起始字节 类型 值 描述 0 BYTE   以下节点按顺序未或存在1否则0 1 DWORD   速度值 5 BYTE   开关量 6 BYTE   是否通主电 7 BYTE   侧翻报警 8 BYTE   碰撞报警 9 BYTE   IC卡插卡状态 10 BYTE[18]   IC卡编号 28 BYTE[16]   司机姓名 44 BYTE[20]   认证ID 64 BYTE[4]   读卡时间 68 BYTE[4]   驾驶员编号 表9 3.10  主系统信息查询          预留                 注:1、以上消息的定义在SDK头文件里面都有备注,本次为初稿,部分协议后续会增加和完善,主要的协议框架定义完成。 2、SDK是基于C++开发的,编译器 arm-hisiv300-linux-g++