问题描述
我有一个IoT设备,该设备通过UDP与云服务器通信。该设备会根据云计划接收每隔几秒钟打开/关闭命令。
我相信设备内部的芯片类似于arduino pro mini。它具有一个外部串行连接到wifi桥接器,可以“打开”与服务器的UDP连接。
来自服务器的命令:
CMD22246A00M10C239S004!9S1$
CMD22246A00M10C239S280!WM0$
CMD22246A00M10C075S960!X2I$
CMD22246A00M10C239S520!ME5$
CMD22246A00M10C075S811!EPJ$
在有帮助的情况下,我将稍微解释一下数据。
- 这些数据包中的时间为22:46
- 前2个代表星期三(0代表星期一)
- A00基本上意味着关闭(电源为0安培)-允许打开时变为A10
- M10是设备应允许通过的最大配置安培
- 我不知道的CXXX
- 我不知道SXXX
-
!
和$
之间的3个字母数字似乎是一个校验和。字母总是大写。
设备类似地将数据报告回云,最后以3个字母数字的校验和
我曾尝试通过单独的UDP服务器将命令数据“注入”到设备中,但是除非我从服务器重播有效数据,否则它们都无效。
我尝试了各种在线工具和校验和/ crc计算器,但似乎找不到任何匹配项。
谢谢。
更新
我刚刚开始注意到相似的数据包在末尾具有非常相似的“校验和”。这是我每周三23:46的所有数据的链接,按字母顺序排列,从左开始时,它会提供最佳的字符串匹配。我已经开始注意到,与其邻居“ 可能”为“ +1”的数据在校验和的第一个字符中的校验和为+1。
此处设置了完整数据:https://pastebin.com/n6LgrDfh
数据相同,但拆分后删除了符号:https://pastebin.com/Q8q4ANEE
我拆分了这些示例,并删除了符号以方便阅读:
CMD22346A10M10 C075 S274 FZD
CMD22346A10M10 C075 S275 EZD
CMD22346A10M10 C075 S276 DZD
CMD22346A10M10 C075 S277 CZD
CMD22346A10M10 C073 S515 P60
CMD22346A10M10 C073 S516 Q60
CMD22346A10M10 C073 S517 J60
更新2
校验字符中永远不会有字母O。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)