2017.8.8 modbus tcp 相关代码实现与 项目模式分析

来源:互联网 发布:淘宝无线端的收藏链接 编辑:程序博客网 时间:2024/06/06 07:57

一、modbus tcp 相关代码

modbus tcp代码相关作用:目前分析大概是配合 modbus poll实现设备的sn号烧写,烧写过程见http://blog.csdn.net/qq_29486527/article/details/76461428

后来王工将tcpecho.c作为tls加密处理,所以此处另外新建文件tcomodbus.c文件添加都工程中,将原有的 modbus tcp相关代码加入。

中间调试过程出现modbus poll 连接一直显示 timeout error 。后来经抓包测试,发现 工具给设备发送modbus 请求,设备并没有回复任何数据。
经过dubeg 测试,发现在定义

u8_t sendbyte_mb;
u8_t tcp_RecevData[50];
u8_t tcp_server_sendbuf[200];

错误的定义了这些。使tcp_server_sendbuf一直为 0,后来定义为外部变量 解决问题。

二、讨论博士项目模式

具体参考模式 :http://blog.csdn.net/oscar999/article/details/9364101

目前为solax将生成的hex 文件发送给博士
(1)博士测试固件是否能用 如果能用,将固件通过哈希算法函数哈希值H1,用LTS私钥对哈希值进行加密。生成密文。
(2)将固件与密文 数字证书一同发送给武汉平台,平台通过MQTT 与设备通信,将收到的固件与密文一同发给设备。
(3)设备收到后,通过tls公钥将密文解密,假使正确解密后得到哈希值H2,.原理上 H1=H2;
(4)将收到的固件通过相同的哈希算法计算出哈希值H3,比较H3== H2;

如果相等,表明固件在传输过程中没有出错,如果不等,则有错误。
具体过程见图:
这里写图片描述