主控板控制协议说明


控制协议

我们将各控制设备与小龟小车之间交互的控制指令称为控制协议,小车支持两类控制协议,Python控制协议和JSON控制协议。任何外部设备可以基于自身的通讯能力来实现控制协议的收发,诸如HTTP通讯、蓝牙通讯、串口通讯、云推送通讯等等。


Python控制协议

该控制协议将标准Python3.4语法做为协议规范,外部设备仅需以Python语法规范提交控制数据即可。

Python控制协议支持流式通讯协议,因此也采用流式协议具备的数据帧的方式进行请求应答,规范如下:

帧头帧尾:都使用字符 "\x00"做为标识符。如果是两个连帧,可以省略共用一位"\x00"字符做为前帧的结束符和后帧的起始符。


帧编号:在Python代码的第一行,按以下格式书写,以“###”打头

###999283<回车>

协议会自动把本行###之后,回车换行之前的999283视为帧编号

答复帧也会带上本编号。


###00001

car.go()



JSON控制协议

该控制协议以JSON4规范进行控制数据的交互,外部设备也仅需以JSON4语法规范提交控制数据即可。

JSON控制协议同样支持流式通讯协议,因此也采用流式协议具备的数据帧方式进行请求应答,规范如下:

帧头帧尾:都使用字符 "\x00"做为标识符。如果是两个连帧,可以省略共用一位"\x00"字符做为前帧的结束符和后帧的起始符。


帧编号:在请求的JSON内,加入stamp字段,会自动被视为帧编号,答复帧也会带上相同的帧编号。

本文的JSON协议请求部分,都采用无引号的JSON5简写方式,但实际上是标准的JSON4,编写的时候,请注意这一转换。

稍晚些,新的固件将会支持JSON5规范。

p=/hw/i2c/scan&v={param:1}


本字符串头尾都有"\x00",p=接口API&v=JSON参数

关于支持JSON5:小龟的团队正在加紧开发支持JSON5标准。



接口分类

我们将小车所有的API按功能分成以下几大部分: