2012-09-27 2 views
2

나는 SerialPort를 통해 SMS 메시지를 보내는 작은 프로그램을 가지고있다. 7-8 일 동안 계속 작동하여 하루에 수백 개의 메시지를 보냅니다. 그러나 때로는 메시지를 보낼 때 중단되며 하드웨어 리셋만으로 해결할 수 있습니다.직렬 포트에서 SMS를 보내면 하드웨어가 멈추는 경우가 있습니까?

모뎀이 메시지 ("> " 문자열 표시)를 기다리고 메시지를 보냈을 때 문제가 발생합니다. 모뎀이 CTRL+Z (ASCII#26) 문자를 수신하면 "OK"을 다시 보내야합니다. 하지만 나는이 응답을 결코 받아들이지 않습니다. 그때부터 모든 쓰기 시도는 System.TimeoutException: The write timed out으로 끝납니다. 예외.

나는 예외를 잡을 수 있지만 하드웨어 리셋을 제외하고는 아무 것도 할 수 없다. 첫 번째 타임 아웃 예외에서 직렬 포트가 작동하지 않습니다. 하이퍼 터미널의 경우에도 작동하지 않습니다. 나는 2 개의 다른 모뎀을 시도 할 기회를 가졌지 만, 둘 다 똑같은 함정을 내놓았다. (다른 모뎀이지만 같은 컴퓨터입니다.) 다른 컴퓨터에서 환경 같은 환경에서 10 일 동안 테스트 할 수있는 방법이 없습니다.

직렬 모니터 소프트웨어를 사용했고 직렬 포트 (또는 모뎀)가 쓰기 타임 아웃 오류를 다시 전송했음을 나타 냈습니다. 직렬 포트를 초기화 할 때 WriteTimeout 속성을 100 (ms)으로 설정합니다. 모뎀 제조업체에 따라 하드웨어 핸드 셰이 킹을 사용해야합니다.

간단한 텍스트 메시지 만 전송합니다 (PDU는없고 문자는 160 자 이하).

이미 this 스레드가 발견되어 쓰기 제한 시간 및 하드웨어 핸드 셰이 킹에 대해 이야기합니다. 쓰기 타임 아웃 값을 높일 수는 있지만이 문제가 종종 발생하는 이유를 알고 싶습니다. 그리고 이것이 내 문제인지 전혀 알고 싶습니다 ...

나는 C# 4.0을 사용하고 있으며 프로그램은 Windows 2008 64 비트 서버에서 실행됩니다.

아이디어가 있으십니까? 데니스에서 힌트에 따라


UPDATE , 우리는 해결책을 발견했다. 워치 독 부분은 시간 초과 예외를 감지하는 자체 소프트웨어입니다. 이 경우 프로그램은 특수한 하드웨어에 명령을 보내 모뎀의 전원을 전환합니다. 처음에는 특수 하드웨어가 릴레이 카드 였지만 RS-232 또는 USB 또는 이더넷을 통해 제어 할 수있는 특수 연장 코드를 발견했습니다. (플러그를 켰다 껐다.)

+0

아무거나 연결하면 임의성이 발생할 수 있습니다. 응용 프로그램이 고정되지 않는 스레드에 통신을 넣으십시오. – BugFinder

+0

@BugFinder 이미 오류가 발생하여 내 앱이 멈추지 않습니다. 그것은 SMS 메시지를 보내 요청을 받고 멋지게 저장합니다. 그러나 SerialPort 또는 모뎀이 동결되어 전송할 수 없습니다. – AntiTalent

+0

이 질문이 어떻게 주제와 관련이 있는지 모르겠습니다. 프로그램에 문제가있어서 소프트웨어 솔루션을 찾았습니다. 하드웨어를 사용하여 사용할 수있는 방법이 하나도 없었습니다. 어디서 이런 질문을해야합니까? – AntiTalent

답변

1

이것은 종종 GSM 모뎀을 사용하는 사람들에게 잘 알려진 문제입니다. 일반적으로 소프트웨어 수준에서 여기서 주목할 수 있으며 하드웨어 리셋 만이 유일한 효과적인 방법입니다.

GSM newtork를 통해 작동하는 ATM을 살펴보면 하드웨어 리셋을 위해 작은 워치 독 장치가 있음을 알 수 있습니다 (전원을 끄고, on보다).

+0

Hehe ... 저는 실제로 ATM을 은행으로 유지하는 회사에서 일하고 있습니다. 나는 주변에서 물어볼 것이다. :) 답변 해주셔서 감사합니다. 적어도 이제는 상사에게 말할 수 있습니다. 내 잘못이 아닙니다. 일반적인 문제입니다. – AntiTalent

+0

@AntiTalent : 글쎄, 나는 네 상사의 관점에서 유능한 권한이 있는지 모르겠다. :) 그러나 당신은 환영합니다. ATM 하드웨어를 탐색 해 보길 강력히 권합니다. – Dennis

+0

걱정하지 마라, 나는 너를 비난 할 것이다. ;) 그리고 귀하의 답변 덕분에 이미 동료들 중 한 명으로부터 하드웨어 수준의 솔루션 (계획)을 얻었습니다. – AntiTalent

관련 문제