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

正文內(nèi)容

基于短信收發(fā)系統(tǒng)畢業(yè)設計-資料下載頁

2025-06-07 07:59本頁面
  

【正文】 學機電學院本科畢業(yè)論文 第 28 頁 } return FALSE。 } 點擊 接收 按鈕會通過 gsmReadMessage 函數(shù)的調用獲 得所有短消息,最后在列表控件中顯示所有短信: void CSMSControlDlg::OnRecvButton() { // TODO: Add your control notification handler code here SM_PARAM smParam[100]。//短信緩沖區(qū) int smsNum。//短信條數(shù) smsNum = gsmReadMessage(smParam)。//讀取短信 //顯示短信 for(int i=0。ismsNum。i++) { (CString(smsNum[i].TPA)+smsNum[i].TP_UD)。 } } 其中調用的 gsmReadMessage 函數(shù)完成最核心的短信接收功能,它按照第 1 節(jié)闡述的 GSM 模塊接收短消息的串口控制流程進行短信的接收: // 參數(shù): pMsg 短消息緩沖區(qū),必須足夠大 // 返回:短消息條數(shù) int gsmReadMessage(SM_PARAM* pMsg) { int nLength。 // 串口收到的數(shù)據(jù)長度 int nMsg。 // 短消息計數(shù)值 char* ptr。 // 內(nèi)部用的數(shù)據(jù)指針 char cmd[16]。 // 命令串 char ans[1024]。 // 應答串 nMsg = 0。 ptr = ans。 sprintf(cmd, AT+CMGL\r)。 // 生成命令,用 +CMGL可一次性讀出全部短消息 WriteComm(cmd, strlen(cmd))。 // 輸出命令串 西安工程大學機電學院本科畢業(yè)論文 第 29 頁 nLength = ReadComm(ans, 1024)。 // 讀應答數(shù)據(jù) // 根據(jù)能否找到 +CMS ERROR決定成功與否 if(nLength 0 amp。amp。 strncmp(ans, +CMS ERROR, 10) != 0) { // 循環(huán)讀取每一條短消息 , 以 +CMGL:開頭 while((ptr = strstr(ptr, +CMGL:)) != NULL) { ptr += 6。 // 跳過 +CMGL: sscanf(ptr, %d, amp。pMsgindex)。 // 讀取序號 ptr = strstr(ptr, \r\n)。 // 找下一行 ptr += 2。 // 跳過 \r\n gsmDecodePdu(ptr, pMsg)。 // PDU串解碼 pMsg++。 // 準備讀下一條短消息 nMsg++。 // 短消息計數(shù)加 1 } } return nMsg。 } 我們可以在讀取完所有短信息后調用 gsmDeleteMessage 函數(shù)在 GSM 模塊上刪除那些已經(jīng)被接收到 PC 上的短信息,它按照第 1 節(jié)闡述的 GSM 模塊刪除短消息的串口控制流程進行短信的刪除: // index: 短消息序號,從 1開始 BOOL gsmDeleteMessage(const int index) { int nLength。 // 串口收到的數(shù)據(jù)長度 char cmd[16]。 // 命令串 char ans[128]。 // 應答串 sprintf(cmd, AT+CMGD=%d\r, index)。 // 生成命令 // 輸出命令串 WriteComm(cmd, strlen(cmd))。 // 讀應答數(shù)據(jù) nLength = ReadComm(ans, 128)。 // 根據(jù)能否找到 +CMS ERROR決定成功與否 西安工程大學機電學院本科畢業(yè)論文 第 30 頁 if (nLength 0 amp。amp。 strncmp(ans, +CMS ERROR, 10) != 0) { return TRUE。 } return FALSE。 } 在 PC 控制 軟件 的短信列表框中刪除所有短消息的 清空 按鈕函數(shù)為: void CSMSControlDlg::OnDeleteallButton() { // TODO: Add your control notification handler code here ()。 } 編 /解碼 GSM 短消息 這里只給出編解碼函數(shù)的原型,具體請參看 GSM 標準及 上一章 。 // UCS2 編碼 返回 : 目標編碼串長度 int gsmEncodeUcs2(const char *pSrc, // 源字符串指針 unsigned char *pDst, // pDst: 目標編碼串指針 int nSrcLength // nSrcLength: 源字符串長度 )。 // UCS2 解碼 返回 : 目標字符串長度 int gsmDecodeUcs2(const unsigned char *pSrc, //源編碼串指針 char *pDst, // pDst: 目標字符串指針 int nSrcLength // nSrcLength: 源編碼串長度 )。 //可打印字符串轉換為字節(jié)數(shù)據(jù) 返回 : 目標數(shù)據(jù)長度 //如: C8329BFD0E01 {0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01} int gsmString2Bytes(const char *pSrc, // pSrc: 源字符串指針 unsigned char *pDst, // pDst: 目標數(shù)據(jù)指針 int nSrcLength // nSrcLength: 源字符串長度 )。 // 字節(jié)數(shù)據(jù)轉換為可打印字符串 返回 : 目標字符串長度 // 如: {0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01} C8329BFD0E01 int gsmBytes2String(const unsigned char *pSrc, // pSrc: 源數(shù)據(jù)指針 char *pDst, // pDst: 目標字符串指針 int nSrcLength // nSrcLength: 源數(shù)據(jù)長度 )。 西安工程大學機電學院本科畢業(yè)論文 第 31 頁 第 4 章 串口 通信及 編程 方法 串口 通信 之基本概念 在 PC 機的主板上,有一種類型的接口可能為我們所忽視,那就是 RS232C 串行接口,在微軟的 Windows 系統(tǒng)中稱其為 COM。我們可以通過設備管理器來查看 COM 的硬件參數(shù)設置,如圖 41。 圖 41 在 Windows上查看 PC串口設置 迄今為止,幾乎每一臺 PC 都包含 COM。本質而言, COM 是 PC 為和外界通信所提供的一種串行數(shù)據(jù)傳輸?shù)慕涌?。作為一種物理通信的途徑和設備,它和目前風靡的另一種串行接口 ――USB 所提供的功能是一致的。不過 RS232C 顯然已經(jīng)開始被后起之秀 USB趕超,因為 USB 的傳輸速率已經(jīng)遠遠超過了 RS232C。 盡管如此, RS232C 仍然具有非常廣泛的應用,在相對長的一段時間里,難以被 USB等接口取代。 RS232C 接口(又稱 EIA RS232C), 1970 年由美國電子工業(yè)協(xié)會( EIA)聯(lián)合貝爾系統(tǒng)、調制解調器廠家及計算機終端生產(chǎn)廠家共同制定,全名是 數(shù)據(jù)終端設備( DTE)和數(shù)據(jù)通訊設備( DCE)之間串行二進制數(shù)據(jù)交換接口技術標準 。 西安工程大學機電學院本科畢業(yè)論文 第 32 頁 圖 42 DB9 圖 42 為 RS232 九針接口 示意 圖 ,其 中 各個針的定義如表 41: 針號 1 2 3 4 5 6 7 8 9 縮寫 數(shù)據(jù)載波檢測 接收數(shù)據(jù) 發(fā)送數(shù)據(jù) 數(shù)據(jù)終端準備 信號地 數(shù)據(jù)設備準備好 請求發(fā)送 清除發(fā)送 振鈴指示 功能說明 DCD RXD TXD DTR GND DSR RTS CTS DELL 表 41 DB9引腳定義 RS232C 定義為數(shù)據(jù)通信設備( DCE)和數(shù)據(jù)終端設備( DTE)之間的互連,實 際 上 ,到現(xiàn)在為止,究竟一個設備屬于 DCE 還是屬于 DTE 已經(jīng)沒有明顯的界限, PC 即可作為DCE,又可作為 DTE。兩串口互連,連接方法主要有二: 一種方法是 : 數(shù)據(jù)的發(fā)送和接收由軟件控制,不進行硬件握手,其連接方法如圖 43,真正需要互相連接的是 RXD、 TXD 和 GND; 圖 43 無硬件握手時兩串口連接 西安工程大學機電學院本科畢業(yè)論文 第 33 頁 軟件握手又稱 為 XON/XOFF,通常以 CTRLS( 0x13)和 CTRLQ( 0x11)兩個字符來實現(xiàn)流控制。前者用于請求對方暫停發(fā)送,后者用于清除暫停傳送的請求,繼續(xù)發(fā)送數(shù)據(jù)。 另一種方法是 : 數(shù)據(jù)的發(fā)送和接收由硬件控制,進行硬件握手,其連接方法如圖 6(最常用 DB9連接示意),需要連接的信號除 RXD、 TXD 和 GND 外,還包括 DTR、 DSR、RTS和 CTS。 硬件握手依賴于 RTS 和 CTS信號,當發(fā)送設備欲發(fā)送數(shù)據(jù)時,將 RTS 信號置為有效表示請求發(fā)送,接收設備準備好后,置 CTS 信號有效,接著發(fā)送設備通過信號線 TXD 開始發(fā)送串行數(shù)據(jù)。 這里我們聯(lián)想開來, RTS/CTS 模式在許多領域里都出現(xiàn)過?;貞浺幌?IEEE 無線局域網(wǎng)協(xié)議標準,在其 MAC 協(xié)議中就使用了 RTS/CTS, RTS/CTS 抽象開來就是一種請求 /應答。筆者曾經(jīng)在拙作中多次以實例論證計算機領域里許多知識的相通性,這又是一個明證。 圖 44 有硬件 握手時兩串口連接 實際上,目前我們經(jīng)常使用的是方法一,即只連接 RXD、 TXD 和 GND,簡單靈活。 利用 Active X 控件實現(xiàn)串口通信 引言 當我們在 Windows 操作系統(tǒng)下開發(fā) 串行通信程序 時通常不得不面對許多復雜的 API函數(shù),因為在 Windows 操作系統(tǒng)下不能直接對設備端口進行操作,也不能在系統(tǒng)級( Ring 3級別)使用任何 DOS 或 BIOS 中斷,如 要對端口進行編程則只能以文件的形式來對端口進行操作,這就使開發(fā)人員不得不面對非常煩瑣的 API 函數(shù)編程。 本章 對此提出了另外西安工程大學機電學院本科畢業(yè)論文 第 34 頁 一種封裝性很好的使用 Microsoft Visual C++ 自帶的 Microsoft Communications Control, version Active X 控件的編程方法 。 程序的設計實現(xiàn) 在開始進行代碼編程前,首先以在工程中插入組件或控件的方式將 Active X 控件Microsoft Communications Control, version 加入到工程中來,此時將會在工程中添加一個關于此控件的新類。使用該控件的一些方法和屬性時不能象使用類一樣簡單的聲明一個實例對象,而要通 ClassWizard為該控件和一個成員變量建立起綁定關系,在此我們將該控件同變量 m_Comm 相綁定后就可以通過該控件提供的方法來對串口的各種通訊參數(shù)進行設置了。為了編程方便起見,也可以在資源 視圖 中直接對該控件的屬性進行設置,如無特 別要求,對下表所列屬性進行設置就基本可以滿足編程要求了?,F(xiàn)將常用的屬性列表如下: 屬性 設定值 屬性說明 CommPort 1 串口號,一般從 1 到 4 InBufferSize 30720 接收緩沖區(qū)大小,為保持程序 穩(wěn)定 建議設得值足夠大 InputMode 0Text 接收數(shù)據(jù) 類型, 0表示文本類型, 1表示二 進制 類型 InputLen 0 從接收緩沖區(qū)讀取 的字節(jié)數(shù), 0表示全部讀取 OutBufferSize 512 發(fā)送緩沖區(qū)大小 Settings 4800,n,8,1 串口的參數(shù)設置 ,依次為波特率、 奇偶校驗 (n無校驗 ,e偶校驗 ,o奇校驗 )、數(shù)據(jù)位數(shù)、停止位數(shù) RThreshold 1 設定當接收幾個字符時觸發(fā) OnComm 事件, 0表示不產(chǎn)生事件, 1表示每接收一個字符就產(chǎn)生一個事件 SThreshold 0 設定在觸發(fā) OnComm 事件前,發(fā)送緩沖區(qū)內(nèi)所允許的最少的字符數(shù), 0表示發(fā)送數(shù)據(jù)時不產(chǎn)生事件, 1表示當發(fā)送緩沖區(qū)空時產(chǎn)生 OnComm 事件 表 42 Microsoft Communications Control, version 西安工程大學機電學院本科畢業(yè)論文 第 35 頁 我們要求
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1