最后更新:2022-07-16 22:54:55 手机定位技术交流文章
物联网原型系统导航
【车联网原型系统|一】项目介绍+需求分析+概要设计https://blog.csdn.net/weixin_46291251/article/details/125807297
【车联网原型系统|二】数据库+应用层协议设计https://blog.csdn.net/weixin_46291251/article/details/125808107
[汽车网络原型系统|3]树果派对设计+模拟基地站计划https://blog.csdn.net/weixin_46291251/article/details/125808229
【车联网原型系统|四】adhoc组网+frp内网穿透https://blog.csdn.net/weixin_46291251/article/details/125808621
[汽车连接网络原型系统]前端和后端分离https://blog.csdn.net/weixin_46291251/article/details/125808674
[汽车连接网络原型系统|6] 效果展览https://blog.csdn.net/weixin_46291251/article/details/125808845
【源码下载】https://download.csdn.net/download/weixin_46291251/86227197
后端与小车树莓派的通信是通过socket进行的,因此需要定义一个私有协议,区分不同类型的数据报文。数据报文采用json格式进行传输。
一般来说,报告可以分为两个类别:控制报告和数据报告。 控制信息用于控制用户车,数据信息用于传输数据信息。
下面的表描述了具体领域及其相应的描述:
| 数据字段 | 内容描述 |
|---|---|
| pac_type | 数据包类型 |
| control_type | 不同的消息函数类型 |
| src_id | 发送方id |
| dst_id | 接收方id |
| piece | 报文分片标记 |
| time | 发送方时间戳 |
| ack | 标识ack |
| length | 消息长度 |
| state | 状态码 |
| alternate | 保留字段 |
第一个是数据消息类型字段,主要识别消息当前方向,主要有三个方向:
| 包类型(pac_type) | 数据流向 | 编码 |
|---|---|---|
| pi -> pc | 01 | |
| pc -> pi | 10 | |
| pi -> pi | 11 | |
| 保留类型 | 00 |
控件类型字段用于识别消息的特定相应的函数。该部分以 pack_type 为基础进行判断,不同的 pack_type 与不同的含义相符:
| 字段 | 指令含义 | 编码 | |
|---|---|---|---|
| control_type | pac_type == pi -> pc | 轨迹数据 | 000 |
| 传感器数据 | 001 | ||
| 电量低 | 010 | ||
| 无法避障 | 011 | ||
| 保留指令 | 100 | ||
| 保留指令 | 101 | ||
| 保留指令 | 110 | ||
| 保留指令 | 111 | ||
| pac_type == pc -> pi | 运动 | 000 | |
| 停止 | 001 | ||
| 返航 | 010 | ||
| 打开传感器 | 011 | ||
| 关闭传感器 | 100 | ||
| 转发 | 101 | ||
| 保留指令 | 110 | ||
| 保留指令 | 111 | ||
| pac_type == pi -> pi | 运动 | 000 | |
| 停止 | 001 | ||
| 返航 | 010 | ||
| 打开传感器 | 011 | ||
| 关闭传感器 | 100 | ||
| 保留指令 | 101 | ||
| 保留指令 | 110 | ||
| 保留指令 | 111 |
状态字段主要用于反馈指令执行数据,例如成功、失败、加班等,并且保留了一些编码以传递自定义状态。
| 状态 | 含义 | 编码 |
|---|---|---|
| 成功 | 000 | |
| 失败(超时) | 001 | |
| 失败(指令非法) | 010 | |
| 失败(原因3) | 011 | |
| 失败(原因4) | 100 | |
| 保留状态 | 101 | |
| 保留状态 | 110 | |
| 保留状态 | 111 |
ack字段:
接收消息后,系统可以对Ack消息作出回应,表明它已经收到消息(可与数字签名相结合,实现双向无可否认的)
-每当收到消息时,按照上述逻辑,在收到消息后向发送者发送一个“Ack”消息,表明该消息已经收到。
- 每次发送消息时,根据上述逻辑发送消息后,会收集Ack消息。此消息的验证显示了消息的结尾。
piece字段:
这个领域主要用于处理大型报纸中的断片问题。
使用芯片方法,头部字段指定当前消息是否是最后的芯片,每次发送一个完整的消息标题和消息的一部分(取决于MTU)。
接收方每次都接收一个MTU大小的报文,解析出头部的pieces字段,判断结束条件,接收完之后将所有的数据字段组合起来即可得到完成的大报文
本文主要讨论了巴士与基地站之间的信息信息内容的结构
| 字段 | 含义 | 举例 |
|---|---|---|
| direction(list) | 四个按钮的状态 | [False,False,False,False] |
| speed | 速度 | 50 |
| diff_speed | 转向差速 | 20 |
| 字段 | 含义 | 举例 |
|---|---|---|
| sensor_list | 传感器列表 | |
| data_list | 数据列表 | |
| trace_stack | 路径栈 |
data_instruction : [‘id’, ‘user_id’, ‘pi_id’, ‘time’, ‘state’, ‘type’, ‘data’]
data_sensor : [‘id’, ‘sensor_id’, ‘user_id’, ‘data’, ‘time’]
data_trace : [‘id’, ‘user_id’, ‘pi_id’, ‘time’, ‘data’]
pi : [‘id’, ‘level’, ‘description’]
sensor_info : [‘id’, ‘name’, ‘group’, ‘description’]
sensors : [‘id’, ‘pi_id’, ‘sensor_type’, ‘SN’, ‘level’]
user : [‘id’, ‘passwd’, ‘level’, ‘reg_time’]





略,见sql文件内

本文由 在线网速测试 整理编辑,转载请注明出处。