freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于gsm短消息方式的gps系統(tǒng)通過(guò)串口收發(fā)短消息(doc畢設(shè)論文)(參考版)

2025-06-28 00:44本頁(yè)面
  

【正文】 在利用SMS進(jìn)行點(diǎn)對(duì)點(diǎn)或多點(diǎn)對(duì)一點(diǎn)的數(shù)據(jù)通信的應(yīng)用中,可以傳輸各種自定義數(shù)據(jù),如GPS信息,環(huán)境監(jiān)測(cè)信息,加密的個(gè)人信息,等等。但注意仍然要遵守規(guī)范。Q 用戶信息(TPUD)其實(shí)可以是任何的自定義數(shù)據(jù),是嗎?A 是的,盡管手機(jī)上會(huì)顯示亂碼。EMS其實(shí)并沒(méi)有超越GSM ,只是TPUD數(shù)據(jù)部分包含一定格式而已。但另一手機(jī)巨頭Nokia未參加標(biāo)準(zhǔn)的制定,手機(jī)鈴聲、圖片格式與它們不同。關(guān)于手機(jī)鈴聲和圖片格式方面,有什么規(guī)范嗎?A 為統(tǒng)一手機(jī)鈴聲、圖片格式,Motorola和Ericsson, Siemens, Alcatel等共同開發(fā)了EMS(Enhanced Messaging Service)標(biāo)準(zhǔn),并于2002年2月份公布。我們用到的幾個(gè)PDU模式下的AT命令,是基本的命令,從原則上講,各廠家的手機(jī)以及GSM模塊應(yīng)該都支持,但可能有細(xì)微差別。所附的Demo中,包含了完整的子線程和發(fā)送/接收應(yīng)用程序界面的源碼。如果串口通信用超時(shí)控制的同步(阻塞)模式,一般做法是專門將發(fā)送/接收處理封裝在一個(gè)工作子線程內(nèi)。所以,應(yīng)當(dāng)在發(fā)送命令后,檢測(cè)手機(jī)的響應(yīng),失敗后重發(fā)。}Q 在用AT命令同手機(jī)通信時(shí),需要注意哪些問(wèn)題?A 任何一個(gè)AT命令發(fā)給手機(jī),都可能返回成功或失敗。dwNumRead, NULL)。} // 讀串口// pData: 待讀的數(shù)據(jù)緩沖區(qū)指針// nLength: 待讀的最大數(shù)據(jù)長(zhǎng)度// 返回: 實(shí)際讀入的數(shù)據(jù)長(zhǎng)度int ReadComm(void* pData, int nLength){ DWORD dwNumRead。 // 串口發(fā)出的數(shù)據(jù)長(zhǎng)度 WriteFile(hComm, pData, (DWORD)nLength, amp。} // 關(guān)閉串口BOOL CloseComm(){ return CloseHandle(hComm)。timeouts)。 // 設(shè)置DCB SetupComm(hComm, 4096, 1024)。 SetCommState(hComm, amp。 = nParity。 // 取DCB = nBaudRate。 // 打開串口失敗 GetCommState(hComm, amp。 // 基本的(額外的)寫超時(shí)時(shí)間: 100 ms hComm = CreateFile(pPort, // 串口名稱或設(shè)備路徑 GENERIC_READ | GENERIC_WRITE, // 讀寫方式 0, // 共享方式:獨(dú)占 NULL, // 默認(rèn)的安全描述符 OPEN_EXISTING, // 創(chuàng)建方式 0, // 不需設(shè)置文件屬性 NULL)。 // 打開串口// pPort: 串口名稱或設(shè)備路徑,可用COM1或\\.\COM1兩種方式,建議用后者// nBaudRate: 波特率// nParity: 奇偶校驗(yàn)// nByteSize: 數(shù)據(jù)字節(jié)寬度// nStopBits: 停止位BOOL OpenComm(const char* pPort, int nBaudRate, int nParity, int nByteSize, int nStopBits){ DCB dcb。以下是利用API實(shí)現(xiàn)的主要代碼,注意我們用的是超時(shí)控制的同步(阻塞)模式。}以上發(fā)送AT命令過(guò)程中用到了WriteComm和ReadComm函數(shù),它們是用來(lái)讀寫串口的,依賴于具體的操作系統(tǒng)。 strncmp(ans, +CMS ERROR, 10) != 0) { return TRUE。 // 根據(jù)能否找到+CMS ERROR決定成功與否 if(nLength 0 amp。 // 生成命令 // 輸出命令串 WriteComm(cmd, strlen(cmd))。 // 命令串 char ans[128]。} // 刪除短消息// index: 短消息序號(hào),從1開始BOOL gsmDeleteMessage(const int index){ int nLength。 // 準(zhǔn)備讀下一條短消息 nMsg++。 // 跳過(guò)\r\n gsmDecodePdu(ptr, pMsg)。 ptr = strstr(ptr, \r\n)。pMsgindex)。 strncmp(ans, +CMS ERROR, 10) != 0) { // 循環(huán)讀取每一條短消息, 以+CMGL:開頭 while((ptr = strstr(ptr, +CMGL:)) != NULL) { ptr += 6。 // 讀應(yīng)答數(shù)據(jù) // 根據(jù)能否找到+CMS ERROR決定成功與否 if(nLength 0 amp。 // 生成命令 WriteComm(cmd, strlen(cmd))。 ptr = ans。 // 命令串 char ans[1024]。 // 短消息計(jì)數(shù)值 char* ptr。} // 讀取短消息// 用+CMGL代替+CMGR,可一次性讀出全部短消息// pMsg: 短消息緩沖區(qū),必須足夠大// 返回: 短消息條數(shù)int gsmReadMessage(SM_PARAM* pMsg){ int nLength。 strncmp(ans, +CMS ERROR, 10) != 0) { return TRUE。 // 讀應(yīng)答數(shù)據(jù) // 根據(jù)能否找到+CMS ERROR決定成功與否 if(nLength 0 amp。 strncmp(ans, \r\n , 4) == 0) { WriteComm(pdu, strlen(pdu))。 // 讀應(yīng)答數(shù)據(jù) // 根據(jù)能否找到\r\n 決定成功與否 if(nLength == 4 amp。 // 生成命令 WriteComm(cmd, strlen(cmd))。 // 取PDU串中的SMSC信息長(zhǎng)度 nSmscLength++。 // 以CtrlZ結(jié)束 gsmString2Bytes(pdu, amp。 // 應(yīng)答串 nPduLength = gsmEncodePdu(pSrc, pdu)。 // 命令串 char pdu[512]。 // SMSC串長(zhǎng)度 int nLength。下面是發(fā)送、讀取和刪除短消息的實(shí)現(xiàn)代碼:// 發(fā)送短消息// pSrc: 源PDU參數(shù)指針BOOL gsmSendMessage(const SM_PARAM* pSrc){ int nPduLength。}依照GSM ,發(fā)送短消息用AT+CMGS命令,閱讀短消息用AT+CMGR命令,列出短消息用AT+CMGL命令,刪除短消息用AT+CMGD命令。 // 格式轉(zhuǎn)換 nDstLength = gsmDecode8bit(buf, pDstTP_UD, nDstLength)。 // 格式轉(zhuǎn)換 nDstLength = gsmDecodeUcs2(buf, pDstTP_UD, nDstLength)。 // 轉(zhuǎn)換到TPDU nDstLength = tmp。 7 ? (int)tmp * 7 / 4 + 2 : (int)tmp * 7 / 4)。 // 用戶信息長(zhǎng)度(TPUDL) pSrc += 2。 // 指針后移 gsmString2Bytes(pSrc, amp。 // 指針后移 gsmSerializeNumbers(pSrc, pDstTP_SCTS, 14)。pDstTP_DCS, 2)。 // 取協(xié)議標(biāo)識(shí)(TPPID) pSrc += 2。 // 指針后移 } // TPDU段協(xié)議標(biāo)識(shí)、編碼方式、用戶信息等 gsmString2Bytes(pSrc, (unsigned char*)amp。 // 指針后移 gsmSerializeNumbers(pSrc, pDstTPA, tmp)。 1) tmp += 1。tmp, 2)。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1