一、测试框架所使用的示例命令定义
- 本框架的示例代码所使用的命令协议规定如下:
- CRC校验码 = [命令类型码 + 命令码 + 命令参数]
- 一个完整封包 = [包头 + 包长 + 命令类型码 + 命令码 + 命令参数 + CRC校验码 + 包尾]
- 包头:FF
- 包尾:EE FC FF EA
- 包长:0A (除去包头和包尾的长度, 包长包括自己的长度)
- 命令类型码:
0x01:上位机给下位机设置的命令类型
0x02:上位机从下位机获取数据的命令类型
0x03:下位机主动给上位机发送数据的命令类型 - 命令码:08 //根据不同命令,定义不同的命令码
- 命令参数:31 32 33 //根据不同的命令需求,添加不同的参数,参数可以为空
- CRC校验码:E32F (使用CRC算法动态计算)
- 设置命令举例
| 命令类型码 | 命令码 | 命令参数 | 说明 |
|---|---|---|---|
| 01 | 01 | 30 31 32 | 给下位机发送字母的指令命令代号为 01,参数为‘0’,‘1’,‘2’ |
| 命令类型码 | 反馈命令码 | 反馈命令参数 | 说明 |
|---|---|---|---|
| 01 | 01 | 无 | 对指令的反馈指令,用于告诉上位命令收到了 |
- 数据获取命令举例
| 命令类型码 | 命令码 | 命令参数 | 说明 |
|---|---|---|---|
| 02 | 01 | 无 | 发出获取温度的命令 命令代号为 01 |
| 命令类型码 | 反馈命令码 | 反馈命令参数 | 说明 |
|---|---|---|---|
| 02 | 01 | 38 30 30 | 返回温度为 800度,以字符格式返回 |
- 下位主动上报命令举例
| 命令类型码 | 命令码 | 命令参数 | 说明 |
|---|---|---|---|
| 03 | 01 | 30 30 31 | 下位机向上位机报警,报警代号为 01,参数为“003” |
| 命令类型码 | 反馈命令码 | 反馈命令参数 | 说明 |
|---|---|---|---|
| 03 | 01 | 无 | 上位机收到报警后的反馈命令 |
二、使用软件模拟下位机对框架进行测试
本框架在实际项目中使用非常稳定。现在为了使用者方面学习并使用本框架以及更好的展示使用效果,这里编写一个“下位机硬件模拟小软件”。
- 下位机模拟软件截图
- MacOS
- Windows
- 下位机模拟软件源码获取地址(使用Qt开发,可以在MacOS平台和Windows平台分别编译)
点击此链接获取源代码
三、示例源代码获取
关于通信框架的的具体实现方法,还是阅读源代码比较“靠谱”,边看代码,边测试。
- 使用Qt开发的本框架源码获取地址
点击此链接获取源代码 - 使用C#Winform开发的本框架源码获取地址
点击此链接获取源代码
四、本框架Qt版本使用方法
- 使用QtCreater编译并运行“下位机模拟器软件”,并点击“启动服务”。注意要保证电脑连接到一个局域网中(连接一个路由器)。因为本框架示例程序中有“局域网发送广播查找设备的功能”。
- 使用QtCreater编译并运行“上位通信构架示例软件”,点击对话框最上面的“Connect按钮”,会弹出“查找设备对话框”,如下图所示。点击“查找按钮”开始查找,找到的设备会显示在列表中,选中设备点击“连接”按钮即可完成设备连接,然后关闭“查找设备对话框”即可。
- “上位通信构架示例软件”中的命令测试方法:
- 点击“上位通信构架示例软件”中的“Set按钮”即可发送一个设置命令到下位中,从“下位机模拟器软件”的界面上可以看到,设置值。
- 点击“上位通信构架示例软件”中的“GetTemperature按钮”,即可从“下位机模拟器软件”中获取一个温度值。此温度值可以在“下位机模拟器软件”中修改。
- 点击“下位机模拟器软件”中的“上报”按钮,会主动发送一个自加数字到“上位通信构架示例软件”,“上位通信构架示例软件”的第三个groupBox中会显示下位机上报的数值。
五、本框架C#Winform版本使用方法
- 使用QtCreater编译并运行“下位机模拟器软件”,并点击“启动服务”。注意要保证电脑连接到一个局域网中(连接一个路由器)。因为本框架示例程序中有“局域网发送广播查找设备的功能”。
- 使用QtCreater编译并运行“上位通信构架示例软件”,点击对话框最上面的“Connect按钮”,会弹出“查找设备对话框”,如下图所示。点击“查找按钮”开始查找,找到的设备会显示在列表中,选中设备点击“连接”按钮即可完成设备连接,然后关闭“查找设备对话框”即可。
- “上位通信构架示例软件”中的命令测试方法:
- 点击“上位通信构架示例软件”中的“Set按钮”即可发送一个设置命令到下位中,从“下位机模拟器软件”的界面上可以看到,设置值。
- 点击“上位通信构架示例软件”中的“GetTemperature按钮”,即可从“下位机模拟器软件”中获取一个温度值。此温度值可以在“下位机模拟器软件”中修改。
- 点击“下位机模拟器软件”中的“上报”按钮,会主动发送一个自加数字到“上位通信构架示例软件”,“上位通信构架示例软件”的第三个groupBox中会显示下位机上报的数值。