单片机SDK说明

 

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++

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值