모바일 앱에서 약한 무선 신호를 처리하는 가장 좋은 방법은 무엇입니까?

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

  •  13-09-2019
  •  | 
  •  

문제

Windows 6.0을 실행하는 핸드 헬드 스캐닝 장치가 있습니다. 핸드 헬드는 사람들이 건물에 들어가서 떠날 때 야외에서 고정 위치에서 바코드를 스캔 할 책임이 있습니다. 이 응용 프로그램의 주요 관심사는 가능한 한 빨리 사람들을 안팎으로 데려 오는 것입니다.

이제 핸드 헬드는 두꺼운 콘크리트 벽 뒤에있는 다른 건물의 컴퓨터와 통신하고 있습니다. 소켓에 연결하고 바코드 정보를 보내고 응답으로 작은 XML 파일을받는 것입니다.

응용 프로그램이 강한 신호를 얻지 못하는 가장 좋은 방법은 무엇이라고 생각하십니까? OS가 경고와 가능한 단절을 처리하도록해야합니까, 아니면 신호 강도가 정의 된 기간 동안 1 bar로 떨어지면 응용 프로그램을 모니터링하고 종료해야합니까?

OS가 모든 것을 처리하게하는 데있어 문제는 사용자가 신호 강도 경고가 낮은 지 여부를 모른다는 것입니다. 또한 신호가 약하고 사용자가 응용 프로그램을 계속 사용하면 대기열이 크게 느려집니다.

직접 종료하면 최소한 사용자가 응용 프로그램 사용을 중단하고 수동 방법으로 전환 해야하는지 확인하지만 단점은 약한 신호가 단지 이상인 경우 응용 프로그램을 연결 해제했는데 지금은 몇 분마다 다시 연결하고 아직 작동하는지 확인해야 할 책임이있는 사용자를 사용자에게 붙였습니다. (연결이 손실되면 자동으로 복원 할 수 없으므로 사용자 입력이 필요합니다).

이것은 내가 핸드 헬드 장치를 위해 만든 첫 번째 응용 프로그램이므로 이와 같은 문제에 대한 표준 접근 방식이 무엇인지 잘 모르겠습니다. 어떤 충고?

도움이 되었습니까?

해결책

고려해야 할 한 가지는 무선 라우터의 더 나은 안테나입니다 (Google은 많은 옵션을 설정합니다). 일부 장치는 또한 기본적으로 또는 하드웨어 해킹을 통해 외부 안테나를 수용 할 수 있습니다.

소프트웨어 측면에서, 신호 강도가 약하임을 나타내는 상태 영역에 경고를 표시하고 더 나은 신호 강도가 달성 될 때까지 수동 방법을 제안하는 것을 고려하십시오. 진행 방법을 결정하기 위해 확실히 사용자에게 맡길 것입니다. 소프트웨어보다 사용자보다 더 영리한 소프트웨어보다 최종 사용자에게 더 자극을주는 것은 거의 없습니다.

다른 팁

결과로 무엇을합니까?

그렇지 않은 경우 스캔 한 바코드를 어떤 종류의 대기열에 추가하면 큐가 다른 스레드에서 처리되는 동안 다음 것을 즉시 스캔 할 수 있습니다.

좋은 접근 방식은 연결을위한 심장 박동 알고리즘 일 수 있습니다. 소켓을 사용하여 서버에 "핑"을 보내고 "Pong"을 기다리십시오.

생산 환경에서는 연결이 손실되거나 애플리케이션에 좋지 않을 때 정확도로 핑 타임 아웃을 조정할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top