发布于 2018-06-07 07:24:33
9楼
对于无关紧要的仪表,我一般用一个字节来存储通讯中断后再次重试周期来避免拖累整个通讯周期。
对于重要的仪表,每个周期我都是不遗不弃的。
一般,我用一个字节存储通讯中断重试次数。当某从站Done时有Err(为了效率不管什么原因的Err同等对待)发生,就直接赋值重试次数10,然后每个通讯周期都判断各从站的重试次数是否 大于0,如果大于0则减1跳过该从站到下一个从站,如果等于0则正常通讯使能。这样就可以在9个通讯周期内不影响其他从站的通讯时间了。相应的可以根据从站的重要程度设置不同的重试周期,妥妥的。
说白了就是你不能像例程那样手拖手的写通讯逻辑了,而是自己搭建通讯处理逻辑来管理哪个从机可以通讯,哪个从机通讯已经中断等待重试。