由于用到了主动报警上传功能。一个简单的if判断,便实现了判断与上传功能。
脱机测试,上流量台测试,都正常。以为这件事便了了。
结果到了现场却给暴出了问题,没法收到报警。
。。。
于是,一对一的现场解决。
发现,还是自己的代码出了问题。心情很不好。感觉自己太粗心了,但是却无从改变自己。
简单来说就是:
Mbus是单向通信。单片机内部有flag来标注是TX还是RX。
正常的CommHandle里面,会改变flag。
但是主动上传功能,没有用于flag,是直接加到while(1)内部去循环判断了。
问题便出现了,默认的flag是RX功能,会出现自收自发。加上用的同一个buffer,也就是说发送时buffer被自己给修改了。
接收数据正常应该是:fe fe fe fe 68 20 ......
结果成了fe fe fe fe fe 20,
把68给丢了。
平常测试时,是人眼看的,瞄一眼,便忽略了压根没有68这个字,只看了看其它后面的error展现了。
自我怀疑人生。。。。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)