C# 处理来自移动应用程序的微弱无线信号的最佳方法是什么?

C# 处理来自移动应用程序的微弱无线信号的最佳方法是什么?,c#,windows-mobile,wireless,C#,Windows Mobile,Wireless,我有一个运行Windows 6.0的手持扫描设备。当人们进出建筑物时,手持设备负责在室外固定位置扫描条形码。此应用程序的主要关注点是让人们尽快进出 现在,手持设备正在与另一栋建筑中的计算机进行通信,该建筑位于厚厚的混凝土墙后面。它所做的只是连接到一个套接字,发送条形码信息,并接收一个小xml文件作为响应 您认为处理未收到强信号的应用程序的最佳方法是什么?我应该让操作系统处理警告和可能的断开连接,还是应该监视应用程序,并在信号强度在规定的时间段内降至1巴时将其关闭 让操作系统处理一切的问题在于,我

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

现在,手持设备正在与另一栋建筑中的计算机进行通信,该建筑位于厚厚的混凝土墙后面。它所做的只是连接到一个套接字,发送条形码信息,并接收一个小xml文件作为响应

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

让操作系统处理一切的问题在于,我不知道用户是否会启用低信号强度警告。另外,如果这是一个弱信号,并且用户继续使用该应用程序,则会大大降低队列速度

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


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

< P>一个值得考虑的事情是无线路由器上有更好的天线(谷歌将提供很多选项)。一些设备也可以接受外部天线,可以是本机的,也可以是通过硬件破解的


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

你对结果做了什么吗


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

一个很好的方法是为您的连接提供令人心跳的算法。 只需使用套接字向服务器发送“ping”,然后等待“pong”


在生产环境中,您可以调整ping超时,以便在连接丢失或对您的应用程序有害时准确检测。

PS-不想在周日开车去Fry's,我制作了一个非常成功的DYI信号助推器,使我在远离我家路由器的房间里从1-2巴变为4巴:实际上我对网络不太了解,但我不想问这里的天线和路由器,以防问题被解决。我们以前使用的是无线路由器和天线,但由于信号弱或干扰,信号不断下降。是测试我的应用程序在他们的硬件上的可靠性的唯一方法,而不是实际设置整个网络并试用它吗?除非你在那里,否则你不知道你的应用程序在他们的环境中如何工作,但你可以通过屏蔽路由器的天线来产生不同程度的低信号,从而在低信号强度下测试你的应用程序的行为。天线上的锡罐(如咖啡罐)有助于停止信号。是的,结果基本上是计算当前大楼中有多少人,以及是否允许该人进入。因此,在收到响应之前,该线路将一直挂起。我只需打开一个插座,手持设备将直接连接到它。我不知道那叫什么名字。网络不是我的强项。