从移动应用程序处理弱无线信号的最佳方法是什么?

时间:2009-08-13 16:40:58

标签: c# windows-mobile wireless

我有一台运行Windows 6.0的手持扫描设备。当人们进入和离开建筑物时,手持设备负责在室外的静止位置扫描条形码。此应用程序的主要关注点是尽快让人们进出。

现在,掌上电脑正在与厚混凝土墙后面的另一栋建筑中的计算机进行通信。它只是连接到套接字,发送条形码信息,并接收一个小的xml文件作为回应。

您认为处理应用程序没有获得强烈信号的最佳方法是什么?我应该让操作系统处理警告和可能的断开连接,还是应该监控应用程序并在信号强度在规定的时间内降至1巴时将其关闭?

让操作系统处理所有事情的问题是,我不知道用户是否会启用低信号强度警告。此外,如果它是一个弱信号,并且用户继续使用该应用程序,它将大大减慢队列速度。

如果我自己关闭它,我至少要确保用户必须停止使用该应用程序并切换到手动方法,但缺点是如果弱信号只是一个异常,那么我已断开应用程序,现在我让用户有责任每隔几分钟尝试重新连接,看看它是否有效。 (一旦连接丢失,它就无法自动恢复,需要用户输入)。

这是我为手持设备制作的第一个应用程序,所以我不确定这个问题的标准方法是什么。有什么建议吗?

3 个答案:

答案 0 :(得分:2)

要考虑的一件事是无线路由器上的天线更好(谷歌会提供很多选项)。有些设备也可以原生或通过硬件黑客接受外部天线。

在软件方面,可能考虑在状态区域显示警告,指示信号强度较弱,并建议手动方法,直到达到更好的信号强度。我当然会让用户决定如何继续。对于最终用户而言,几乎没有什么比试图比用户更聪明的软件更令人恼火。

答案 1 :(得分:0)

你对结果做了什么吗?

如果没有,您可以将扫描的条形码添加到某种队列中,这样就可以让您在另一个线程上处理队列时立即扫描下一个队列。

答案 2 :(得分:0)

一种好的方法可以是连接的心跳算法。 只需使用套接字向服务器发送“ping”并等待“pong”。

在生产环境中,您可以调整ping超时,以便在连接丢失时以较高的准确度进行检测,或者对应用程序造成不良影响。