2017-04-10 187 views
0

我有一個摩托羅拉Razar v3m的數組,現在包含大約26部手機。我有一個我構建的多線程軟件平臺,它管理每個電話和消息路由/定時等待任務以及所有這些。使用AT命令發送短信時繞過消息存儲

當我發出:

AT + CMGW = 「1234567890」 消息< 26> < 27>

它需要近30秒,寫入信息到手機內存中,然後我開始使用發送郵件:

AT + CMSS = messageIndex

並且需要另外30秒。

我已經嘗試過使用AT + CMGS,但無法獲得該功能來成功發送消息。

我需要這是可靠的,但用這種方法/電話組合,我甚至不會依賴它來告訴我生日快樂一年一次。

有沒有另一種方式發送短信而不先將其存儲到內存?它不僅速度慢, ,但最終導致電話不再發送消息,即使它們在AT + CMGD之後被刪除,也不會再發送消息

回答

1

這聽起來像你正在寫SIM卡的內存,因爲它太慢了。 從AT+CMGW27.005的描述:

執行命令存儲消息(無論是SMS-DELIVER或SMS-SUBMIT)到存儲器存儲<mem2>

和上文中的 「3.1參數定義」:

<mem1>字符串類型;從中讀取和刪除消息的存儲器(命令列表消息+ CMGL,讀取消息+ CMGR和刪除消息+ CMGD);定義的值(其它的是製造商特定):

"BM" broadcast message storage 
"ME" ME message storage 
"MT" any of the storages associated with ME 
"SM" (U)SIM message storage 
"TA" TA message storage 
"SR" status report storage 

<mem2>字符串類型;寫入和發送操作的存儲器(命令從存儲器+ CMSS發送消息並將消息寫入存儲器+ CMGW));參照用於定義值

<mem1><mem2>的值被配置爲與AT+CPMS,優選的消息存儲(注意要set both to the same value)。所以我的猜測是,如果你運行AT+CPMS?它將返回+CPMS: "SM", ..., ..., "SM", ...。如果我的猜測是正確的,你應該切換到另一個存儲在手機上(「我」,「MT」或「TA」 - 檢查與AT+CPMG=?它支持什麼(它可能支持additional storages相比,標準))這將是很多更快的模擬存儲。


使用AT+CMGS應該是可能的,但是請注意,你需要wait for "\r\n> "發送有效載荷之前。當你說你沒有得到那個工作時,我認爲你在正確解析答案和正確等待方面遇到了一些麻煩。

+0

我會授予你 - 因爲你是正確的,但總之,答案是放棄摩托羅拉Razr v3m手機 - 它們太不可靠了。他們最終只是停止發送消息,而我已經嘗試過70個電話。我最終剛剛構建了一個帶有GSM屏蔽的Arduino,並將其編碼爲我需要的 - 它在短時間內發送文本。 – Matth3w