一台手持机,通过433MHz的频段向目标发射数据包,目标带有数据库查询功能。手持机发送数据后,就一直死循环等待接收机的应答。接收机在收到数据包后就在数据库里面去匹配数据。如果手持机收到数据包,就按接收机的应答包去解析,无论这一包是不是接收机的应答包,按照设计者的逻辑,都一定是应答包。
但是按照老板给客户的产品介绍(老板自己都不熟悉自己的产品,以为和WIFI或者GPRS一样的用),接收机可以分布存储数据库,手持机向接收机发出数据查询后,如果数据匹配成功,就能进入下一步的控制。显然,这个还没有毕业的设计者犯了致命的错误。
首先,手持机一包数据发出去后,如果接收机接收到数据,但是不返回应答,手持机岂不是就死机了?
其次,如果多台手持机对多个接收器发送数据,然后都有应答,手持机收到不该接收的应答怎么办?后来这个设计者在我提醒下加入了地址识别。
有了地址识别,他以为就好了。但是还是遇到问题了。手持机需要连续查询几条数据,就会“死机”,其实,是他的程序进入了死循环。
|