2014-04-01 8 views
2

윈도우 머신에서 D-Link GSM 모뎀을 프로그래밍하여 SMS를 보내고 받았다. 테스트를 위해 하이퍼 터미널을 사용했다.리눅스에서 수신 SMS 알림을받는 방법?

Windows에서 연결 관리자는 COMx 포트를 시작하고 모뎀은 SMS를 보낼 수있는 목록에없는 COMx 포트 하나를 사용하고 나열된 NMEA 포트를 통해 들어오는 SMS를 받고 + CMTI : "ME", 11 또는 RING + CLIP : XXXXXXXXXXXX

메시지를 성공적으로 해석하고이를 Windows의 요구 사항에 맞게 프로그래밍하고 있습니다. linux (Fedora)에서 똑같은 것을 시도하면서 모뎀이/dev/ttyUSB0 및/dev/ttyUSB1을 새롭게 식별 된 두 장치로 초기화하는 것을 봅니다. 미니 포트를 사용하여 장치 포트를 설정하고 AT 명령을 동일한 포트로 전달합니다.

두 장치 (/ dev/ttyUSB0 및/dev/ttyUSB1)에서 새 SMS가 필요할 때마다 + CMTI 표시와 같은 원치 않는 AT 결과 코드를받지 못합니다. 참고로 저는 CNMI 설정을 매뉴얼과 여러 다른 조합에 따라 설정했습니다.

이상한 점은 내가 전화 할 때 링을 볼 수 있지만 + 클립이 아니라는 것입니다. < callerinfo>. 마찬가지로 나는 ++를 얻지 못하고있다. XX, Y 또는 + CMTI : "ME", XX

UNREAD 메시지를 정기적으로 폴링하는 유일한 해결책은 일반적으로 나쁜 디자인이다. 구성과 관련하여 아무런 잘못을하지 않는다면, 다른 것들을 변경해야합니까?

답변

1

RING은 특정 구성없이 항상 올 수있는 유일한 UR 코드입니다 (이는 단지 이런 식으로 작동하는 오래된 유물이기 때문에 ...). 다른 모든 UR 코드의 경우 각 UR 코드를 명시 적으로 사용하도록 설정해야합니다 (예 : AT+CLIP=1 등이 있습니다. 그렇지 않으면 활성화되지 않습니다. 그리고 이들을 가능하게하는 것은 직렬 인터페이스 당입니다./dev/ttyUSB0에서 AT+CLIP=1을 실행해도 +CPLIP: ...이/dev/ttyUSB1에 인쇄되지 않습니다.

그래서 Windows에 연결 관리자를 가져 오면 초기화 문자열에 포함 된 항목이 포함되어 있어야합니다. Minicom 나는 초기화 문자열이 없거나 ATS0=0 E1Q0V1과 같은 매우 고전적인 것으로 생각한다.

+0

고마워요! AT + CLIP = 1은 RING을위한 UR 코드를 얻기 위해 사용되었습니다. 그리고 CNMI 설정이 새로운 SMS에 대한 UR 코드를 얻는 데 차이가 있다고 생각합니까? – Onewildgamer

+0

예. [27.005] (http://www.3gpp.org/ftp/Specs/html-info/27005.htm)에서'AT + CNMI'의 정의를 찾을 수 있습니다. 대부분의 휴대 전화 관련 AT 명령은 [27.007] (http://www.3gpp.org/ftp/Specs/html-info/27007.htm)에 정의되어 있으며 [V.250] (http : //www.itu .int/rec/T-REC-V.250-200307-I/ko)는 기본 AT 명령 표준입니다. – hlovdal