MQTT上位机通讯协议详解:起终点与命令信息
需积分: 0 184 浏览量
更新于2024-08-05
收藏 131KB PDF 举报
本文档描述了一个上位机通讯协议,主要用于智能小车竞赛中的实时数据交换。协议通过MQTT协议进行通信,涉及到的topic包括路况信息、起终点信息、命令信息和位置信息。通讯连接信息是Broker为mqtt.gycis.me,Port为1883,Username和Password均为smartcar。MAC地址的后三段用于标识小车。
详细内容如下:
1. 路况信息:路况信息的payload由连续的record组成,每个record包含三个字节。第一个字节表示路段的起点编号,第二个字节表示终点编号,第三个字节表示路况等级。路况等级范围为0到9,数值越大代表拥堵程度越高,小车在该路段上的最高电机电压为12 - x伏特。例如,数据0x010x020x03表示从节点1到节点2的路段拥堵等级为3,意味着小车在该路段上最高只能获得9伏的电压。
2. 起终点信息:起终点信息的payload由两个字节构成,分别表示起点和终点编号。这类信息仅在每轮比赛开始时发送一次,并且有效期限为当前比赛轮次。它用于指示小车应从哪个节点出发并驶向哪个节点。
3. 命令信息:命令信息用于控制比赛的开始和结束,其payload是一个单字节的十六进制数组。当字节值为0x00时,表示比赛开始,同时电机电源开启;0x01表示小车到达终点,比赛正常结束;0x02则表示发生异常,如小车冲出赛道。上位机在比赛开始和结束时会发送相应的命令。
4. 位置信息:虽然未提供具体细节,但位置信息topic为/smartcar/{mac}/position,可推断这是用来传递小车当前的位置坐标或者状态,可能包括节点编号或其他定位数据。
在Python中,可以通过以下方式获取MAC地址的后三段,例如:
```python
import re
with open('/sys/class/net/wlan0/address') as f:
mac = re.sub(r'.+((:\w\w){3})\n', r'\1', f.read()).replace(':', '')
```
然后,可以使用`mac`变量来构建MQTT topic,如`/smartcar/{mac}/xxx`。
这个通讯协议对于实现智能小车竞赛的自动化管理和控制至关重要,确保了上位机与小车之间的高效、准确的信息交互,从而能够实时调整小车行为,适应不断变化的路况。
2018-11-10 上传
2012-09-10 上传
2021-07-05 上传
2023-11-28 上传
2023-07-11 上传
2023-06-13 上传
2023-08-11 上传
2023-06-03 上传
2023-06-02 上传
甜甜不加糖
- 粉丝: 38
- 资源: 322
最新资源
- JavaScript实现的高效pomodoro时钟教程
- CMake 3.25.3版本发布:程序员必备构建工具
- 直流无刷电机控制技术项目源码集合
- Ak Kamal电子安全客户端加载器-CRX插件介绍
- 揭露流氓软件:月息背后的秘密
- 京东自动抢购茅台脚本指南:如何设置eid与fp参数
- 动态格式化Matlab轴刻度标签 - ticklabelformat实用教程
- DSTUHack2021后端接口与Go语言实现解析
- CMake 3.25.2版本Linux软件包发布
- Node.js网络数据抓取技术深入解析
- QRSorteios-crx扩展:优化税务文件扫描流程
- 掌握JavaScript中的算法技巧
- Rails+React打造MF员工租房解决方案
- Utsanjan:自学成才的UI/UX设计师与技术博客作者
- CMake 3.25.2版本发布,支持Windows x86_64架构
- AR_RENTAL平台:HTML技术在增强现实领域的应用