基于MTK平臺的短信控制遠程終端實現方案
3.2.3MTK接收短信息數據結構體
MTK將收到的短信息的相關參數打包成結構體,以下為MTK關于接收到短信內容相關信息的結構體。MTK平臺每一條短信的內容分成若干段,一個字節為一段。其中no_msg_data為接收到的段數,數組msg_data[1]接收到的信息的第一段數據,以接收到的第一段的數據為索引,解析接收到內容后通過判斷遠程終端接收到的短信內容來對遠程終端外接負載采取相應操作。
typedef struct{
……
U16 no_msg_data;
U8 msg_data[1];
} mmi_frm_sms_deliver_msg_struct;
3.3 MTK遠程終端的控制程序流程
基于MTK平臺的遠程控制終端在接收到控制信息后,MTK自動回復和對負載采取操作的代碼在函數void mmi_frm_sms_new_sms_ind(void *inMsg)中被調用。此函數的功能是將L4層的數據轉換成MMI層的數據,并對接收到的數據進行處理,直至顯示到遠程終端界面上。將MTK作為遠程終端,不需要將接收到的控制負載的信息顯示在界面上,所以為了屏蔽發送來的信息顯示在終端界面,應把接收到的短信添加到短信記錄中的函數CHISTIncRecvdSMS注釋掉。裝有SIM卡的遠程終端經常收到如10086之類的服務信息,為了屏蔽這些不必要的信息,對發送信息進來的號碼長度進行判斷,加上中國的電話區位號86,則若為手機發送一共為13位。由于MTK的代碼是分模塊的,當在短信模塊中調用其他模塊的函數時,就需要在這個函數被調用的文件里面加上相應的頭文件。圖4為條件判斷和對打開/關斷負載的函數的調用以及對短信自動回復的函數的調用情況。
圖4 遠程終端控制負載及自動回復流程
3.4 試驗結果
將一支發光二極管作為遠程控制終端的外接負載,正極接MTK6225的GPIO45,負極接MTK6225的GND,GPIO45默認為低電平,剛接上時發光二極管處于熄滅狀態。用手機發送短信內容為“on”的指令到基于MTK平臺的遠程控制終端時,發光二極管亮,遠程控制終端返回信息“ the bulb turn on successfully”;用手機發送短信內容為“off”的指令到基于MTK平臺的遠程控制終端時,發光二極管熄滅,遠程控制終端返回信息“ the bulb turn off successfully”。發送其他內容的短信指令到遠程控制終端時,發光二極管沒有響應且不返回任何信息。試驗結果表明,基于MTK的短信控制遠程終端的方案切實可行。
結語
充分發揮MTK平臺高性價比的優勢, 提出將MTK手機平臺應用于控制領域,設計了基于MTK平臺的短信控制遠程終端的實現方案,并通過試驗驗證了該方案的可行性。該方案具有成本低、開發周期短、組網方便、易于擴展等優點,為通信和控制相關領域的研究和開發人員提供了參考。
評論