2009-08-13 3 views
0

У меня есть портативное устройство сканирования под управлением Windows 6.0. карманный компьютер отвечает за сканирование штрих-кодов в стационарном положении на улице, когда люди входят и покидают здание. Основная проблема для этого приложения заключается в том, чтобы как можно быстрее забирать людей.Каков наилучший способ обработки слабых беспроводных сигналов из мобильного приложения?

Теперь карманный компьютер общается с компьютером в другом здании, которое находится за толстыми бетонными стенами. Все, что он делает, это подключиться к сокету, отправить информацию о штрих-кодах и получить в ответ небольшой XML-файл.

Как вы считаете, лучший способ обработать приложение, не получая сильный сигнал? Должен ли я позволить ОС обрабатывать предупреждения и возможное отключение, или я должен контролировать приложение и отключать его, если уровень сигнала падает до 1 бар в течение определенного периода времени?

Проблема, связанная с тем, что ОС полностью управляет всем, заключается в том, что я не знаю, будут ли у пользователя предупреждения о низком уровне сигнала включенными. Плюс, если это слабый сигнал, и пользователь продолжает использовать приложение, это значительно замедлит работу очереди.

Если я сам закрою это, я по крайней мере гарантирую, что пользователь должен прекратить использование приложения и перейти к ручному методу, но недостатком является то, что слабый сигнал был просто аномалией, после чего я отключил приложение и теперь я заставлял пользователя нести ответственность за повторное подключение каждые несколько минут и видеть, работает ли оно еще. (Как только соединение потеряно, оно не может быть автоматически восстановлено, оно требует ввода пользователем).

Это первое приложение, которое я сделал для карманного устройства, поэтому я не уверен, какой стандартный подход к такой проблеме. Любой совет?

ответ

2

Одна вещь, которую следует учитывать, - это лучшая антенна на беспроводном маршрутизаторе (в Google появится много вариантов). Некоторые устройства могут также принимать внешнюю антенну, либо изначально, либо через аппаратный взломать.

С программной стороны, возможно, подумайте о том, чтобы отобразить предупреждение в области состояния, указывающее на слабость сигнала и предлагая ручной метод, пока не будет достигнута лучшая сила сигнала. Я бы, конечно, оставил его пользователю, чтобы решить, как действовать. Немногие вещи более раздражают конечного пользователя, чем программное обеспечение, пытающееся быть более умным, чем пользователь.

+0

PS - Не желая ехать в Фрай в воскресенье, я сделал очень успешный усилитель сигнала DYI, который заставил меня от 1-2 до 4 баров в комнате далеко от моего домашнего маршрутизатора: http: // www .binarywolf.com/249/diy-parabolic-reflector.htm –

+0

Ну, я действительно мало знаю о сети, но я не хотел спрашивать об антеннах и маршрутизаторах здесь, если у него вопрос закрыт. Раньше мы использовали беспроводной маршрутизатор и антенну, но сигнал постоянно терялся из-за слабых сигналов или помех. Единственный способ проверить, насколько надежным будет мое приложение на своем оборудовании, отличным от фактической настройки всей сети и ее проверки? – Brandon

+1

Вы не будете знать, как ваше приложение будет работать в своей среде до тех пор, пока вы там, но вы МОЖЕТЕ проверить поведение своего приложения с низким уровнем сигнала, защищая антенну вашего маршрутизатора, чтобы создать различные уровни низкого сигнала. Оловянная баня (например, кофейная баня) над антенной проходит долгий путь к остановке своего сигнала. –

0

Вы ничего не делаете в результате?

Если нет, вы можете просто добавить отсканированный штрих-код в какую-то очередь, которая затем позволит вам сразу же сканировать следующий, пока очередь обрабатывается в другом потоке.

+0

Да, результат в основном зависит от количества людей, находящихся в настоящее время в здании, и от того, разрешено ли человеку въезд. Таким образом, линия будет удерживаться до получения ответа. – Brandon

+0

Как вы общаетесь с компьютером? Веб-сервис? – Oll

+0

Я просто открываю сокет, и карманный компьютер подключается непосредственно к нему. Я не уверен, что это за название. Сеть не моя сильная сторона. – Brandon

0

Хорошим подходом может быть алгоритм биения для вашего соединения. Просто отправьте «ping» на ваш сервер, используя ваш сокет, и дождитесь «понга».

В рабочей среде вы можете настроить тайм-аут ping для обнаружения с хорошей точностью, когда соединение потеряно или плохо для вашего приложения.

Смежные вопросы