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

正文內(nèi)容

基于短信收發(fā)系統(tǒng)畢業(yè)設計-預覽頁

2025-02-11 15:19 上一頁面

下一頁面
 

【正文】 nSrc++。用上面介紹的算法收發(fā)純英文短消息,一般情況應該是夠用了。8bit編碼其實沒有規(guī)定什么具體的算法,不需要介紹。Windows環(huán)境下,用C實現(xiàn)UCS2編碼和解碼的算法如下:// UCS2編碼// pSrc: 源字符串指針// pDst: 目標編碼串指針// nSrcLength: 源字符串長度// 返回: 目標編碼串長度int gsmEncodeUcs2(const char* pSrc, unsigned char* pDst, int nSrcLength){ int nDstLength。 inDstLength。 } // 返回目標編碼串長度 return nDstLength * 2。 inSrcLength/2。 // 輸出字符串加個結(jié)束符 pDst[nDstLength] = 39。可以循環(huán)調(diào)用sscanf和sprintf函數(shù)實現(xiàn)這種變換。 i+=2) { // 輸出高4位 if(*pSrc=39。 *pSrc=39。) 4。 } pSrc++。amp。039。 } pSrc++。 // 0x00xf的字符查找表 for(int i=0。 0x0f]。 // 返回目標字符串長度 return nSrcLength * 2。首先,定義如下常量和結(jié)構(gòu):// 用戶信息編碼方式define GSM_7BIT 0define GSM_8BIT 4define GSM_UCS2 8 // 短消息參數(shù)結(jié)構(gòu),編碼/解碼共用// 其中,字符串以0結(jié)尾typedef struct { char SCA[16]。 // 用戶信息編碼方式(TPDCS) char TP_SCTS[16]。以下是PDU全串的編解碼模塊。 // 目標PDU串長度 unsigned char buf[256]。 // SMSC地址信息長度 buf[1] = 0x91。 // 轉(zhuǎn)換SMSC到目標PDU串 // TPDU段基本參數(shù)、目標地址等 nLength = strlen(pSrcTPA)。 // 目標地址數(shù)字個數(shù)(TPDA地址字符串真實長度) buf[3] = 0x91。pDst[nDstLength], nLength)。 // 用戶信息編碼方式(TPDCS) buf[2] = 0。 // 轉(zhuǎn)換TPDA到目標PDU串 } else if(pSrcTP_DCS == GSM_UCS2) { // UCS2編碼方式 buf[3] = gsmEncodeUcs2(pSrcTP_UD, amp。buf[4], nLength)。 // 轉(zhuǎn)換該段數(shù)據(jù)到目標PDU串 // 返回目標字符串長度 return nDstLength。 // 內(nèi)部用的緩沖區(qū) // SMSC地址信息段 gsmString2Bytes(pSrc, amp。 // 指針后移 gsmSerializeNumbers(pSrc, pDstSCA, tmp)。 // 取基本參數(shù) pSrc += 2。 // 取長度 if(tmp amp。 // 取TPRA號碼 pSrc += tmp。 // 指針后移 gsmString2Bytes(pSrc, (unsigned char*)amp。 // 服務時間戳字符串(TP_SCTS) pSrc += 14。 // 指針后移 if(pDstTP_DCS == GSM_7BIT) { // 7bit解碼 nDstLength = gsmString2Bytes(pSrc, buf, tmp amp。 } else if(pDstTP_DCS == GSM_UCS2) { // UCS2解碼 nDstLength = gsmString2Bytes(pSrc, buf, tmp * 2)。 // 轉(zhuǎn)換到TPDU } // 返回目標字符串長度 return nDstLength?! ≡O置短消息中心的指令格式為:  AT+CSCA=″+8613800531500″(短消息中心)CR  設置正確則模塊返回CRLFOKCRLF。 通過TC35發(fā)送短消息的方法PC上的控制軟件按照PDU的格式發(fā)送和接收數(shù)據(jù),短消息的內(nèi)容可以是中文或者其他字符?! ≌f明一下,為什么AT+CMGS=33呢,是這樣得來的: 11000D91683117352446F2000800124F60597D002C00480065006C006C006F0021短消息到來后,串口上會接收到指令CRLF+CMTI:″SM″,INDEX(信息存儲位置)CRLFPC上的控制軟件通過讀取PDU數(shù)據(jù)的AT命令AT+CMGR=INDEXCRLF將TC35模塊中PDU格式的短消息內(nèi)容讀出。實際上,一個理想的短信收發(fā)軟件的界面應類似于Outlook或Foxmail,包含收件箱、發(fā)件箱、已發(fā)送短信箱等內(nèi)容,但是這些東西都與我們要介紹的串口通信無關,因此,下面的軟件界面雖敗絮其外,但仍可稱得上金玉其中:圖31 短信發(fā)送與接收主介面:BEGIN EDITTEXT IDC_SMSCONTENT_EDIT,39,61,242,38,ES_AUTOHSCROLL PUSHBUTTON 發(fā)送,IDC_SEND_BUTTON,316,80,45,18 GROUPBOX 接收短消息,IDC_STATIC,28,124,361,167 LTEXT 對方手機號,IDC_STATIC,41,35,42,11 EDITTEXT IDC_PHONENUM_EDIT,88,30,192,17,ES_AUTOHSCROLL PUSHBUTTON 清除,IDC_CLEAR_BUTTON,316,30,45,18 GROUPBOX 發(fā)送短消息,IDC_STATIC,29,19,361,95 LISTBOX IDC_RECVSMS_LIST,43,137,331,127,LBS_SORT |  LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP PUSHBUTTON 接收,IDC_RECV_BUTTON,77,269,55,16 PUSHBUTTON 清空,IDC_DELETEALL_BUTTON,273,268,45,14END:BEGIN_MESSAGE_MAP(CSMSControlDlg, CDialog)//{{AFX_MSG_MAP(CSMSControlDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_CLEAR_BUTTON, OnClearButton) ON_BN_CLICKED(IDC_SEND_BUTTON, OnSendButton) ON_BN_CLICKED(IDC_RECV_BUTTON, OnRecvButton) ON_BN_CLICKED(IDC_DELETEALL_BUTTON, OnDeleteallButton)//}}AFX_MSG_MAPEND_MESSAGE_MAP():  數(shù)據(jù)結(jié)構(gòu)// 用戶信息編碼方式define GSM_7BIT 0define GSM_8BIT 4define GSM_UCS2 8 // 短消息參數(shù)結(jié)構(gòu),編碼/解碼共用// 其中,字符串以0結(jié)尾typedef struct{ char SCA[16]。 // 用戶信息編碼方式(TPDCS) char TP_SCTS[16]。 短信的發(fā)送、接收及刪除代碼實現(xiàn)發(fā)送按鈕對應的函數(shù)為CSMSControlDlg::OnSendButton,它讀取用戶輸出并根據(jù)目標電話號碼和短信息內(nèi)容形成SM_PARAM(源PDU參數(shù))的內(nèi)容,接著進行發(fā)送:void CSMSControlDlg::OnSendButton() { // TODO: Add your control notification handler code here //獲得用戶輸入 CString desPhoneNum?!?/填充SM_PARAM結(jié)構(gòu)體內(nèi)容 SM_PARAM smParam。 // PDU串長度 unsigned char nSmscLength。 // PDU串                                                       char ans[128]。nSmscLength, 2)。 // 先輸出命令串 nLength = ReadComm(ans, 128)。 // 得到肯定回答,繼續(xù)輸出PDU串  nLength = ReadComm(ans, 128)。  } } return FALSE。//讀取短信 //顯示短信 for(int i=0。 // 串口收到的數(shù)據(jù)長度 int nMsg。 // 應答串 nMsg = 0。 // 輸出命令串 nLength = ReadComm(ans, 1024)。 // 跳過+CMGL:   sscanf(ptr, %d, amp。 // 跳過\r\n   gsmDecodePdu(ptr, pMsg)。}  我們可以在讀取完所有短信息后調(diào)用gsmDeleteMessage函數(shù)在GSM模塊上刪除那些已經(jīng)被接收到PC上的短信息,它按照第1節(jié)闡述的GSM模塊刪除短消息的串口控制流程進行短信的刪除:// index: 短消息序號,從1開始BOOL gsmDeleteMessage(const int index){ int nLength。 // 生成命令 // 輸出命令串 WriteComm(cmd, strlen(cmd))。 strncmp(ans, +CMS ERROR, 10) != 0) {  return TRUE。// UCS2編碼 返回: 目標編碼串長度int gsmEncodeUcs2(const char *pSrc, // 源字符串指針 unsigned char *pDst, // pDst: 目標編碼串指針 int nSrcLength // nSrcLength: 源字符串長度)。第4章串口通信及編程方法 串口通信之基本概念  在PC機的主板上,有一種類型的接口可能為我們所忽視,那就是RS232C串行接口,在微軟的Windows系統(tǒng)中稱其為COM。作為一種物理通信的途徑和設備,它和目前風靡的另一種串行接口――USB所提供的功能是一致的。圖42 DB9  圖42 為RS232九針接口示意圖,其中各個針的定義如表41: 針號123456789縮寫數(shù)據(jù)載波檢測接收數(shù)據(jù)發(fā)送數(shù)據(jù)數(shù)據(jù)終端準備信號地數(shù)據(jù)設備準備好請求發(fā)送清除發(fā)送振鈴指示功能說明DCDRXDTXDDTRGNDDSRRTSCTSDELL表41 DB9引腳定義RS232C定義為數(shù)據(jù)通信設備(DCE)和數(shù)據(jù)終端設備(DTE)之間的互連,實際上,到現(xiàn)在為止,究竟一個設備屬于DCE還是屬于DTE已經(jīng)沒有明顯的界限,PC即可作為DCE,又可作為DTE?! ∮布帐忠蕾囉赗TS和CTS信號,當發(fā)送設備欲發(fā)送數(shù)據(jù)時,將RTS信號置為有效表示請求發(fā)送,接收設備準備好后,置CTS信號有效,接著發(fā)送設備通過信號線TXD開始發(fā)送串行數(shù)據(jù)。圖44 有硬件握手時兩串口連接實際上,目前我們經(jīng)常使用的是方法一,即只連接RXD、TXD和GND,簡單靈活。使用該控件的一些方法和屬性時不能象使用類一樣簡單的聲明一個實例對象,而要通ClassWizard為該控件和一個成員變量建立起綁定關系,在此我們將該控件同變量m_Comm相綁定后就可以通過該控件提供的方法來對串口的各種通訊參數(shù)進行設置了。 //如沒有打開則將端口打開……接下來的工作就是對數(shù)據(jù)的發(fā)送與接收了,這也是本文所要介紹的重點所在?;蚴牵篊OLECommView* view=(COLECommView*) pParam。實現(xiàn)主要代碼如下:……char a[255]。CString str。m_SendData+=str。(COleVariant(m_SendData))。CString str。m_RecvData=。 隨著信息時代的發(fā)展,短信群發(fā)系統(tǒng)已經(jīng)被眾多企業(yè)所重視起來,但它作為企業(yè)的使用方案還存在一些不足,如它暫時只是一個單機版系統(tǒng),無法使企業(yè)中的不同基層共享同一系統(tǒng)。指導老師黃新波和同學們給予了我極大的幫助與支持,這是我除獲得知識以外感到最為寶貴
點擊復制文檔內(nèi)容
范文總結(jié)相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1