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