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

正文內(nèi)容

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

  

【正文】 u, amp。 strncmp(ans, \r\n , 4) == 0) { WriteComm(pdu, strlen(pdu))。 // 短消息計(jì)數(shù)值 char* ptr。 // 讀應(yīng)答數(shù)據(jù) // 根據(jù)能否找到+CMS ERROR決定成功與否 if(nLength 0 amp。 // 跳過\r\n gsmDecodePdu(ptr, pMsg)。 // 生成命令 // 輸出命令串 WriteComm(cmd, strlen(cmd))。以下是利用API實(shí)現(xiàn)的主要代碼,注意我們用的是超時(shí)控制的同步(阻塞)模式。 // 取DCB = nBaudRate。timeouts)。dwNumRead, NULL)。所附的Demo中,包含了完整的子線程和發(fā)送/接收應(yīng)用程序界面的源碼。EMS其實(shí)并沒有超越GSM ,只是TPUD數(shù)據(jù)部分包含一定格式而已。在利用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è)人信息,等等。但另一手機(jī)巨頭Nokia未參加標(biāo)準(zhǔn)的制定,手機(jī)鈴聲、圖片格式與它們不同。如果串口通信用超時(shí)控制的同步(阻塞)模式,一般做法是專門將發(fā)送/接收處理封裝在一個(gè)工作子線程內(nèi)。} // 讀串口// pData: 待讀的數(shù)據(jù)緩沖區(qū)指針// nLength: 待讀的最大數(shù)據(jù)長(zhǎng)度// 返回: 實(shí)際讀入的數(shù)據(jù)長(zhǎng)度int ReadComm(void* pData, int nLength){ DWORD dwNumRead。 // 設(shè)置DCB SetupComm(hComm, 4096, 1024)。 // 打開串口失敗 GetCommState(hComm, amp。}以上發(fā)送AT命令過程中用到了WriteComm和ReadComm函數(shù),它們是用來讀寫串口的,依賴于具體的操作系統(tǒng)。 // 命令串 char ans[128]。 ptr = strstr(ptr, \r\n)。 // 生成命令 WriteComm(cmd, strlen(cmd))。} // 讀取短消息// 用+CMGL代替+CMGR,可一次性讀出全部短消息// pMsg: 短消息緩沖區(qū),必須足夠大// 返回: 短消息條數(shù)int gsmReadMessage(SM_PARAM* pMsg){ int nLength。 // 讀應(yīng)答數(shù)據(jù) // 根據(jù)能否找到\r\n 決定成功與否 if(nLength == 4 amp。 // 應(yīng)答串 nPduLength = gsmEncodePdu(pSrc, pdu)。}依照GSM ,發(fā)送短消息用AT+CMGS命令,閱讀短消息用AT+CMGR命令,列出短消息用AT+CMGL命令,刪除短消息用AT+CMGD命令。 7 ? (int)tmp * 7 / 4 + 2 : (int)tmp * 7 / 4)。pDstTP_DCS, 2)。 1) tmp += 1。 // 轉(zhuǎn)換SMSC號(hào)碼到目標(biāo)PDU串 pSrc += tmp。} // PDU解碼,用于接收、閱讀短消息// pSrc: 源PDU串指針// pDst: 目標(biāo)PDU參數(shù)指針// 返回: 用戶信息串長(zhǎng)度int gsmDecodePdu(const char* pSrc, SM_PARAM* pDst){ int nDstLength。buf[4], nLength)。 // 轉(zhuǎn)換TPDA到目標(biāo)PDU串 // TPDU段協(xié)議標(biāo)識(shí)、編碼方式、用戶信息等 nLength = strlen(pSrcTP_UD)。 // TPDA地址字符串的長(zhǎng)度 buf[0] = 0x11。 // 內(nèi)部用的緩沖區(qū) // SMSC地址信息段 nLength = strlen(pSrcSCA)。 // 目標(biāo)字符串長(zhǎng)度減1 } // 輸出字符串加個(gè)結(jié)束符 *pDst = 39。 // 保存先出現(xiàn)的字符 *pDst++ = *pSrc++。\039。 // 復(fù)制后出現(xiàn)的字符 *pDst++ = ch。F39。 // 目標(biāo)號(hào)碼或回復(fù)號(hào)碼(TPDA或TPRA) char TP_PID。 } // 輸出字符串加個(gè)結(jié)束符 *pDst = 39。 } // 返回目標(biāo)數(shù)據(jù)長(zhǎng)度 returnnSrcLength / 2。939。A39。 amp。 // 返回目標(biāo)字符串長(zhǎng)度 return nDstLength。 // UNICODE寬字符數(shù)目 WCHAR wchar[128]。 // UNICODE串緩沖區(qū) // 字符串UNICODE串 nDstLength = ::MultiByteToWideChar(CP_ACP, 0, pSrc, nSrcLength, wchar, 128)。”、 “233。 nLeft = 0。 // 將該字節(jié)剩下的左邊部分,作為殘余數(shù)據(jù)保存起來 nLeft = *pSrc (7nByte)。 // 目標(biāo)解碼串的計(jì)數(shù)值 int nByte。 // 將該字節(jié)剩下的左邊部分,作為殘余數(shù)據(jù)保存起來 nLeft = *pSrc nChar。 // 目標(biāo)編碼串的計(jì)數(shù)值 int nChar。8bit編碼時(shí),就是字節(jié)數(shù)。從Internet上發(fā)出的短消息常常是這種情形。PDU串不僅包含可顯示的消息本身,還包含很多其它信息,如 SMS服務(wù)中心號(hào)碼、目標(biāo)號(hào)碼、回復(fù)號(hào)碼、編碼方式和服務(wù)時(shí)間等。一共有三種方式來發(fā)送和接收SMS信息:Block Mode, Text Mode和PDU Mode。前二者著重描述SMS的技術(shù)實(shí)現(xiàn)(含編碼方式),后者則規(guī)定了SMS的DTEDCE接口標(biāo)準(zhǔn)(AT命令集)。它們是8位字節(jié)的十六進(jìn)制數(shù),或者BCD碼十進(jìn)制數(shù)。 +8時(shí)區(qū)06用戶信息長(zhǎng)度(TPUDL)實(shí)際長(zhǎng)度6個(gè)字節(jié)4F 60 59 7D 00 21用戶信息(TPUD)“你好!”若基本參數(shù)的最高位(TPRP)為0,則沒有回復(fù)地址的三個(gè)段。7bit編碼時(shí),指原始短消息的字符個(gè)數(shù),而不是編碼后的字節(jié)數(shù)。 // 源字符串的計(jì)數(shù)值 int nDst。 } else { // 組內(nèi)其它字節(jié),將其右邊部分與殘余數(shù)據(jù)相加,得到一個(gè)目標(biāo)編碼字節(jié) *pDst = (*pSrc (8nChar)) | nLeft。 // 源字符串的計(jì)數(shù)值 int nDst。 0x7f。 // 組內(nèi)字節(jié)序號(hào)和殘余數(shù)據(jù)初始化 nByte = 0。如果是法語(yǔ)、德語(yǔ)、西班牙語(yǔ)等,含有 “229。 // UNICODE寬字符數(shù)目 WCHAR wchar[128]。} // UCS2解碼// pSrc: 源編碼串指針// pDst: 目標(biāo)字符串指針// nSrcLength: 源編碼串長(zhǎng)度// 返回: 目標(biāo)字符串長(zhǎng)度int gsmDecodeUcs2(const unsigned char* pSrc, char* pDst, int nSrcLength){ int nDstLength。\039。039。 } else { *pDst = (*pSrc 39。 *pSrc=39。 pDst++。 pSrc++。 // 短消息服務(wù)中心號(hào)碼(SMSC地址) char TPA[16]。利用下面兩個(gè)函數(shù)可進(jìn)行正反變換:// 正常順序的字符串轉(zhuǎn)換為兩兩顛倒的字符串,若長(zhǎng)度為奇數(shù),補(bǔ)39。 // 保存先出現(xiàn)的字符 *pDst++ = *pSrc++。 // 目標(biāo)串長(zhǎng)度加1 } // 輸出字符串加個(gè)結(jié)束符 *pDst = 39。i+=2) { ch = *pSrc++。 nDstLength。 // 目標(biāo)PDU串長(zhǎng)度 unsigned char buf[256]。 // 轉(zhuǎn)換SMSC到目標(biāo)PDU串 // TPDU段基本參數(shù)、目標(biāo)地址等
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1