2012-08-01 4 views
0

EMDK (버전 2.6)를 사용하여 MC75의 바코드 스캐너에 액세스하는 다중 양식 Windows 모바일 응용 프로그램이 있습니다. 싱글 톤을 사용하여 바코드 스캐너에 액세스합니다. 응용 프로그램이 시작될 때 barcodereader.Actions.Enable()을 호출하고 응용 프로그램이 종료되면 나는 barcodereader.Actions.Disable()을 호출합니다. 기본적으로 EMDK 샘플을 사용하여 스캐너가 작동하도록했습니다.바코드 스캐너가 Motorola MC 75A에서 멈춤

응용 프로그램이 실행되는 동안 양식 활성화 이벤트에서 바코드 판독기`readNotify '에 이벤트 처리기를 추가하고 양식이 활성화 될 때 이벤트 처리기를 제거합니다. 이 문제가 올바르게 발생하는지 확인하기 위해 코드를 삽입하고 새 이벤트가 추가되기 전에 존재하는 이벤트 처리기가 존재하지 않는지 확인하는 검사를 추가했습니다.

응용 프로그램이 제대로 작동하지만 바코드 스캐너가 갑자기 끊어져 트리거 버튼을 누르면 작동하지 않습니다. 이것은 항상 같은 장소에서 일어난 것처럼 보입니다 (약 20 개의 홀수 스캔이 세 가지 형태로 퍼져 나간 후). 오류가 발견되지 않고 스캐너 표시등이 켜지지 않습니다. 내가 할 수있는 스캔 횟수가 정해져 있고, 스캔은 몇 초 전에 성공적으로 스캔을 완료 한 형태로 멈 춥니 다. 단일 양식에서 20 번 이상 스캔 할 수는 있지만 다른 양식으로 스캔 할 때만 문제가있는 것으로 보입니다.

응용 프로그램을 다시 시작하면 스캐너가 다시 작동합니다. 데이터 웨지 소프트웨어가 설치되었지만 사용되지 않았습니다.

내 연구 중에이 문제가 발생했습니다. here,하지만 내 문제가 간헐적으로 보이지 않습니다.

Symbol 지원 사이트에서 양식 사이를 이동할 때`.Actions.Enable '과'.Actions.Disable '을 반복적으로 호출하는 것은 바람직하지 않다고 알려주고 있습니다.

나는 응용 프로그램에서 무엇을 확인해야 할지를 놓치고 있습니다. 어떤 아이디어?

세부 정보 - Windows Visual Studio 2008을 사용하는 장치는 Windows Mobile 6.5 Professional, EMDK 버전 2.6, C#으로 작성된 응용 프로그램을 실행 중입니다.

답변

2

MC70 장치에서 이와 똑같은 문제가 발생했습니다. 불행히도 이전 고용주가 있었으므로 더 이상 다시 볼 소스 코드가 없습니다. 나는 그것이 작동되도록 다소 추악한 해결 방법을 만들어야한다는 것을 기억한다.

나는 부모 양식의 내부에 barcodereader 객체를 선언/인스턴스화하는 것을 끝내 었다는 것을 알고 있습니다. (그래서 싱글 톤 클래스는 필요 없습니다.) 그런 다음 자식 폼을 인스턴스화 할 때마다 부모 폼 개체 나 barcodereader 개체 BY BY REFERENCE 중 하나를 자식 폼으로 전달했습니다. 그런 다음 충돌없이/반복적으로 하위 양식에서 반복적으로 액세스 할 수있었습니다. 나는 그것이 꽤 모호한 설명이지만, 그 코드를 작업 한 지 2 년이 지났음을 알고있다. 희망이 도움이됩니다.

1

나는 몇 년 전에이 문제를 알고 있었다!. 그 해결책은 다음과 같습니다. 양식 탐색을 할 때 바코드 리더를 비활성화하지 마십시오 (항상 활성으로 유지). 그것은 나를 위해 완벽하게 작동합니다 (저는 6 년 전 MC7562를했고 지금은 MC75A 장치입니다). 프로그램에서 서로 다른 형식으로 스캔 된 데이터를 다르게 처리하도록 지시하는 논리를 추가하십시오. 예, 독자 개체를 "싱글 톤"으로 사용하는 것이 중요합니다.