Quelle est la meilleure façon de gérer un signal sans fil faible d'une application mobile?

StackOverflow https://stackoverflow.com/questions/1273171

  •  13-09-2019
  •  | 
  •  

Question

J'ai un dispositif de balayage portable fonctionnant sous Windows 6.0. l'ordinateur de poche est responsable de la numérisation des codes à barres à une position stationnaire à l'extérieur que les gens entrent et sortent d'un bâtiment. La préoccupation principale de cette application est d'amener les gens et sortir le plus rapidement possible.

Maintenant, le terminal mobile est en communication avec un ordinateur dans un autre bâtiment qui se trouve derrière les murs de béton épais. Tout ce qu'il fait est de connecter à une prise, envoyer les informations de code à barres, et recevoir un petit fichier xml en réponse.

Que pensez-vous serait la meilleure façon de gérer l'application de ne pas obtenir un signal fort? Dois-je laisser le système d'exploitation gérer les avertissements et déconnexion possible, ou devrais-je surveiller l'application et le fermer si la puissance du signal tombe à 1 bar pendant une période de temps définie?

Le problème avec le système d'exploitation en laissant tout gérer, est que je ne sais pas si l'utilisateur aura des avertissements de faible intensité du signal est activé. De plus, si elle est un signal faible, et l'utilisateur continue à utiliser l'application, il va grandement ralentir la file d'attente.

Si je l'ai fermé moi-même, je au moins assurer que l'utilisateur doit cesser d'utiliser l'application et de passer à une méthode manuelle, mais l'inconvénient est que si le signal faible était une anomalie alors que je suis déconnecté l'application et maintenant Je suis resté fidèle à l'utilisateur la responsabilité d'essayer de se reconnecter toutes les quelques minutes et voir si cela fonctionne encore. (Une fois que la connexion est perdue, il ne peut pas être restauré automatiquement, il faut l'entrée d'utilisateur).

Ceci est la première application que je l'ai fait pour un appareil de poche, donc je ne suis pas sûr de ce que l'approche standard pour un problème comme celui-ci est. Un conseil?

Était-ce utile?

La solution

Une chose à considérer est une meilleure antenne sur le routeur sans fil (Google se retrouvera de nombreuses options). Certains appareils peuvent également accepter une antenne externe, soit nativement ou via un hack matériel.

Du côté logiciel, peut-être envisager l'affichage d'un avertissement dans une zone d'état indiquant que la force du signal est faible et qui suggère la méthode manuelle jusqu'à ce qu'une meilleure puissance du signal est atteint. Je certainement laisser à l'utilisateur de décider comment procéder. Peu de choses sont plus irritant pour un utilisateur final que le logiciel en essayant d'être plus intelligent que l'utilisateur.

Autres conseils

Faites-vous quoi que ce soit avec le résultat?

Sinon, vous pouvez simplement ajouter le code à barres scannés à une sorte de file d'attente qui vous permettra de scanner immédiatement la suivante alors que la file d'attente est traitée sur un autre thread.

Une bonne approche peut être un algorithme de heartbeating pour votre connexion. Il suffit d'envoyer un « ping » à votre serveur en utilisant votre prise et attendez que le « pong ».

Dans l'environnement de production, vous pouvez régler le délai d'attente ping pour détecter avec une bonne précision lorsque la connexion est perdue ou est mauvais pour votre application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top