2014-04-01 117 views
2

我已經在Windows機器上編程了一個D-Link GSM調制解調器來發送和接收SMS,用於測試我使用了超級終端。如何在linux中接收傳入的短信通知?

在windows中,連接管理器啓動COMx端口,調制解調器使用一個未列出的COMx端口,通過該端口我可以發送SMS,並通過列出的NMEA端口接收傳入的SMS,例如+ CMTI:「ME」 RING + CLIP:XXXXXXXXXXXX

我成功地解釋了消息並將其編程爲符合我在Windows中的要求。在linux(Fedora)中嘗試相同的操作時,我看到調制解調器將/ dev/ttyUSB0和/ dev/ttyUSB1初始化爲兩個新識別的設備。我使用minicom來設置設備端口並將AT命令傳遞給相同的端口。

在這兩個設備(/ dev/ttyUSB0和/ dev/ttyUSB1)中,我都沒有收到未經請求的AT結果代碼,例如+ CMTI指示,只要我期待新的SMS。僅供參考我已根據手冊和其他幾種組合設置了CNMI設置。

奇怪的是,我可以看到RING,當我打電話,但不+ + CLIP:< callerinfo>。同樣,我沒有獲得++ PSBEARER:XX,Y或+ CMTI:「ME」,XX

唯一的替代解決方案是定期輪詢UNREAD消息,這通常是一個糟糕的設計。請告訴我,如果我在配置方面做錯了什麼,我應該改變一些其他的東西嗎?

回答

1

RING是您可以假設的唯一的UR代碼,它總是會在沒有任何特定配置的情況下發生(僅僅因爲這是一個如此古老的文物,它只是表現出這種方式......)。對於所有其他的UR代碼,您必須明確地啓用它們中的每一個,例如AT+CLIP=1等,否則它們將不會被啓用。並使這些按串行接口(例如,在/ dev/ttyUSB0上運行AT+CLIP=1將不會使+CPLIP: ...打印在/ dev/ttyUSB1上。

因此,當你在窗口上獲得連接管理器時,它必須是因爲它包含了它的init字符串。 Minicom我認爲默認是沒有init字符串或可能只是一個非常經典的像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/en)是AT命令的基本標準。 – hlovdal