最近在做一个电表的辅助程序开发,遇到了一些困难,求懂的大佬给科普一下。
我仔细阅读了 DL/T 645-2007 标准,同时又根据上游给了几组合法数据,与设备进行了一些调试,发现目标设备数据格式并不完全和 645 标准一致,初步怀疑可能是采用了上海规约(因为设备产自上海地区),可是网上找不到相关上海规约的具体规范文件。
以简单的读表操作来说,上游给的正确数据应该是:68XXXXXXXXXXXX681104323733228316
,但是根据 645 标准,数据域并不应该是 3237332283 。
同时设备上的返回值是68XXXXXXXXXXXX689139323733229c843433 fa373333373333336f333b3a3d33e73333333333b73475ac3375ac33333333333333575533333333b468333333333333335116
,很显然返回值的数据域也与 645 标准不一致,看起来像是经过了某种 xor 或者数据偏移。而且只有数据域参与了偏移,控制位之前的数据位都是符合 645-2007 标准的。
很遗憾的上游需求方也是层层转包过来,具体的细节他们也无法给出更多的参考资料,只能给出许多正确的请求样例与返回样例。
因此,现在我就只关心一点了,这个设备的返回的数据是使用了某种地方性规范还是厂家自己魔改的。各位大佬们有关于上海规约的规范性文件嘛?如果对不上规范文件的标准,那这个活不干就是了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.