110,533
社区成员
发帖
与我相关
我的任务
分享
通讯逻辑有点问题,下位机应该等上位机有回应再发
建议增加中断机制,当客户端收到某个特定指令的时候中断发送(例如:Cmd_Get)。这样的话就可以安心处理完要处理的事情。待处理完事情以后再发送完成指令(例如:Cmd_Ok)。如果处理异常可以在加入重发指令(例如:Cmd_ReSend)。这样就不会出现你说的当一个指令未完成有来下一个指令了。
建一个全局变量保存recvMsg或者cmd,响应一条指令时判断是否与这个变量相同,相同就不处理,不相同就处理,变量赋为空