处理控制远程机器人的应用程序,在该应用程序中,按下按钮与实际发生的操作之间可能存在显着延迟.此外,由于网络不可靠等原因,命令有可能无法成功到达目标接收者.此外,还有一些变量在发挥作用,其变化不是即时的.例如,指令速度和当前速度都有一个变量; 更改指令速度不会立即使当前速度与该值匹配.
问题是,如何让应用程序反映远程机器人报告的当前状态,以及向用户确认应用程序理解了他的命令,但系统尚未收到来自机器人的通知已被承认?(弹出窗口是绝对禁止的.)
已经讨论过的一些想法:
按下命令按钮时,启动计时器一段合理的秒数,并在此期间禁用该按钮.不要直接更新相应的标签,而是等待机器人的响应.(例如,如果按下速度+按钮,右侧是显示当前速度的文本标签,请不要立即更改标签,而是等待机器人的响应).一旦发生此响应,或计时器到期,请重新启用该按钮.
优点:页面上不需要额外的控件小部件.标签始终反映机器人的当前状态.
缺点:如果您想连续发送两个速度更新,则必须等到第一次收到并确认.会感到迟钝和反应迟钝.
拥有一个用户可以查看的日志,该日志显示用户已采取的所有操作的文本表示,已加上时间戳,并且历史记录清晰可见.可以根据用户偏好进行颜色编码.
优点:用户立即反馈他的命令被理解,因为它出现在日志中
缺点:不解决如何处理按钮(尤其是单选按钮)行为的问题.
有没有人有在为行动和响应之间存在显着延迟的环境构建UI的经验?我会很感激任何和所有的输入.