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