<strike id="kiyse"></strike>
  • <tr id="kiyse"></tr>
  • <strike id="kiyse"></strike><samp id="kiyse"><tbody id="kiyse"></tbody></samp>
    <strike id="kiyse"><s id="kiyse"></s></strike>
    <tr id="kiyse"></tr>
    <noframes id="kiyse"><code id="kiyse"></code></noframes>
    <th id="kiyse"></th>
    <samp id="kiyse"></samp>
  • <th id="kiyse"><s id="kiyse"></s></th>
  • 基于WINCE平臺(tái)eVC編程要點(diǎn)之三——GPRS-RS232數(shù)據(jù)透明傳輸

     2008-6-26    

            英創(chuàng)提供的系列ARM9嵌入式主板,包括有EM9000嵌入式主板、EM9260嵌入式主板、EM9160嵌入式主板都是預(yù)裝了正版WinCE操作系統(tǒng),ARM9嵌入式主板的所有通訊接口均配置有標(biāo)準(zhǔn)的WinCE驅(qū)動(dòng)程序。本文以串口通訊和GPRS通訊為例,側(cè)重介紹利用GPRS進(jìn)行數(shù)據(jù)透明傳輸?shù)姆桨福摲桨竿ㄟ^(guò)GPRS自動(dòng)撥號(hào)上網(wǎng),和遠(yuǎn)端網(wǎng)絡(luò)數(shù)據(jù)中心建立TCP連接,從而實(shí)現(xiàn)遠(yuǎn)端數(shù)據(jù)中心和應(yīng)用串口數(shù)據(jù)之間的透明傳輸功能。


            本文以英創(chuàng)的EM9260嵌入式主板為例來(lái)介紹GPRS數(shù)據(jù)透明傳輸?shù)膽?yīng)用方案。在本方案中EM9260中COM2口接GPRS通訊模塊,COM3口作為應(yīng)用串口。關(guān)于EM9260主板接口的詳細(xì)介紹請(qǐng)參見(jiàn)“EM9260數(shù)據(jù)手冊(cè)”。


            在進(jìn)行本方案測(cè)試時(shí),首先需要建立一個(gè)遠(yuǎn)端數(shù)據(jù)中心,該數(shù)據(jù)中心作為服務(wù)器端,運(yùn)行一個(gè)TCPServer的程序,特別需要注意的是該數(shù)據(jù)中心必須要具有互聯(lián)網(wǎng)可訪問(wèn)的IP地址,GPRS撥號(hào)上網(wǎng)后才能訪問(wèn)該數(shù)據(jù)中心,互聯(lián)網(wǎng)可訪問(wèn)的IP包括有靜態(tài)IP、ADSL撥號(hào)上網(wǎng)后的IP等,關(guān)于這部分的內(nèi)容請(qǐng)參見(jiàn)英創(chuàng)網(wǎng)站“GPRS/CDMA應(yīng)用方案”一文的介紹。第二需要將EM9260主板上的以太網(wǎng)的網(wǎng)關(guān)參數(shù)設(shè)置為0,在訪問(wèn)外網(wǎng)時(shí)以確保系統(tǒng)選路時(shí)是通過(guò)GPRS訪問(wèn),而不至于通過(guò)以太網(wǎng)的網(wǎng)關(guān)路由訪問(wèn)。設(shè)置的方法可以通過(guò)修改userinfo.txt文件內(nèi)容,如:


    [LOCAL_MACHINE]
    DefaultGateway='0.0.0.0'     // 以太網(wǎng)的缺省網(wǎng)關(guān)參數(shù)設(shè)置為0
    IPAddress='192.168.201.170'
    SubnetMask='255.255.255.0'
    [USER_EXE]
    Name='\NandFlash\GPRS232.exe'
    Parameters=''
    [SYSTEM]
    Store='50'

            該方案實(shí)現(xiàn)代碼為GPRS232項(xiàng)目文件,在該例程中主要包括三部分的內(nèi)容:GPRS自動(dòng)撥號(hào)上網(wǎng);作為T(mén)CP客戶端的WinSock數(shù)據(jù)通訊;應(yīng)用串口數(shù)據(jù)通訊。其中GPRS自動(dòng)撥號(hào)上網(wǎng)部分在應(yīng)用文檔 “基于WINCE平臺(tái)eVC編程要點(diǎn)之二 — WINCE下的GPRS應(yīng)用”中有詳細(xì)的介紹,這里就不再贅述。


            本方案例程中據(jù)啟動(dòng)了兩個(gè)接收線程,一個(gè)串口通訊接收線程,一個(gè)是TCP Socket接收線程,各接收線程分別執(zhí)行不同功能的回調(diào)函數(shù)。


    // 串口接收線程調(diào)用回調(diào)函數(shù),處理串口接收到的數(shù)據(jù)
    void CALLBACK OnReceive( )
    {
        if( ConnState==2 )
        {
            // 串口接收到的數(shù)據(jù)通過(guò)TCP連接發(fā)送到遠(yuǎn)端數(shù)據(jù)中心
            m_TCPClient.SendData( m_ceSer.DatBuf, m_ceSer.m_lDatLen );
        }
    }


    // WinSock接收線程調(diào)用回調(diào)函數(shù),處理TCP連接接收到的數(shù)據(jù)
    void CALLBACK OnRead( )
    {
        BOOL bResult;
        // TCP連接接收到遠(yuǎn)端數(shù)據(jù)中心的數(shù)據(jù)通過(guò)應(yīng)用串口發(fā)送到目標(biāo)設(shè)備
        m_ceSer.WritePort( m_TCPClient.RecvBuf, m_TCPClient.m_nRecvLen );
    }


    // 處理WinSocket關(guān)閉操作
    void CALLBACK OnClose( )
    {
        char Buf[100];
        int  len;
        strcpy( Buf,'TCP connect closed' );
        len = strlen( Buf );
        m_ceSer.WritePort( Buf, len );
    }


    // WinSock出錯(cuò)處理,對(duì)TCP連接狀態(tài)復(fù)位,主循環(huán)將重新進(jìn)行撥號(hào)、重新建立TCP
    // 連接的操作
    void CALLBACK OnError( int nErrorCode)
    {
        ConnState = 0;
    }

            對(duì)本方案感興趣的英創(chuàng)客戶可以向英創(chuàng)技術(shù)部分索取相關(guān)代碼。

    一级香蕉精品视频在线播放| 国产精品国色综合久久| 91精品啪在线观看国产91九色| 国产精品ⅴ无码大片在线看| 国产精品一区二区香蕉| 亚洲国产成人精品激情| 99精品全国免费观看视频..| 国产亚洲精品美女| 91情侣在线精品国产免费| 久久国产精品久久精| 自拍偷自拍亚洲精品第1页| 国产精品αv在线观看| 国产精品69白浆在线观看免费| 亚洲精品在线观看视频| 亚洲精品成人片在线播放| 国产精品一区三区| 国产午夜精品福利| 国内精品视频一区二区三区八戒 | 久久中文字幕精品 | 激情亚洲一区国产精品| 奇米影视7777久久精品| 久久福利青草精品资源站免费| 国产色精品vr一区区三区| 国产精品毛片大码女人| 国产精品毛片久久久久久久| 精品无码AV一区二区三区不卡| 国产成人精品高清在线观看93| 精品久久久久久国产牛牛app| 尤物在线观看精品国产福利片| 亚洲A∨精品一区二区三区下载| 国产精品久久女同磨豆腐| 精品欧洲av无码一区二区14| 99aiav国产精品视频| 99热在线精品免费播放6| 亚洲成人精品久久| 无码精品A∨在线观看| 国产精品视频一区二区三区无码 | 91亚洲国产成人久久精品| 亚洲无删减国产精品一区| 久久96精品国产| 99久久精品免费视频|