<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于Xbee Pro模塊和ZigBee/GPS/GPRS的智能公交系統(tǒng)設計

          基于Xbee Pro模塊和ZigBee/GPS/GPRS的智能公交系統(tǒng)設計

          作者: 時間:2012-06-05 來源:網(wǎng)絡 收藏

            DTU的透傳模式可使電子站牌客戶端在發(fā)起通信請求時, 使DTU必須與服務器建立網(wǎng)絡連接。也就是說, 電子站牌下位機與服務器進行數(shù)據(jù)傳輸時, 首先是電子站牌下位機要與DTU設備的串口相連, 在DTU進入透傳模式后自動被調用, 并與服務器建立網(wǎng)絡連接, 當網(wǎng)絡連接建立后, DTU將自動完成串口到網(wǎng)絡通信的轉換, 以便所有數(shù)據(jù)可透明地在服務器軟件與電子站牌下位機之間雙向傳輸。

            服務器與電子站牌終端通信可通過套接字socket 來實現(xiàn)。首先在服務器上建立一個監(jiān)聽Socket對象, 并綁定在一個固定端口上, 然后,每當電子站牌客戶端發(fā)送一個SOCKET連接請求,服務器端就會新開啟一個線程, 并在其中創(chuàng)建一個socket與電子站牌客戶端的socket通訊, 直到電子站牌客戶端程序關閉, 該線程結束, 然后服務器主線程的socket在應用程序退出時關閉。通過多線程的Socket程序設計, 可以實現(xiàn)一個服務器與多個電子站牌客戶端的通信。

            以下是服務器基于socket多線程的具體實現(xiàn)程序代碼:

            DWORD WINAPI AnswerThread ( LPVOIDlparam) //收發(fā)線程入口

            {//創(chuàng)建線程時把服務器建立的新套接字傳給lparam

            SOCKET ClientSocket = ( SOCKET) ( LPVOID)lparam;

            int bytesRecv;char sendbuf [ 32] = “ ” ;char

            recvbuf [32] =“” ;

            while (1)

            {bytesRecv=SOCKET_ERROR;

            for ( int i =0;i 《 ( int) strlen ( recvbuf) ;i ++ )

            {recvbuf [i] =‘’;}

            while (bytesRecv==SOCKET_ERROR)

            { bytesRecv =recv ( ClientSocket,recvbuf,32,0) ;} //⑤接收電子站牌客戶端的數(shù)據(jù)

            …

            send ( ClientSocket,recvbuf,strlen ( recvbuf) ,0) ; //⑥向電子站牌客戶端發(fā)送數(shù)據(jù)

            }

            }

            …

            WSAStartup (MAKEWORD (2,2) ,wsaData) ;//初始化Winsock

            socket ( AF_INET,SOCK_STREAM,IPPROTO_TCP) ;//①創(chuàng)建一個監(jiān)聽socket

            bind ( m_socket, ( SOCKADDR*) service,sizeof(service)) //②綁定套接字

            listen (m_socket,20) //③監(jiān)聽套接字

            SOCKET AcceptSocket;

            while (1) //一直等待客戶端的請求, 請求到來后,建立新的連接套接字

            { AcceptSocket=SOCKET_ERROR;

            while (AcceptSocket==SOCKET_ERROR)

            { AcceptSocket =accept ( m_socket,NULL,NULL) ;} /*④等待客戶請求到來,請求到來后,接受連接請求, 返回一個新的對應此次連接的socket*/

            hThread =CreateThread ( NULL,NULL,AnswerThread, ( LPVOID) AcceptSocket,0,dwThreadId) ;} /*創(chuàng)建新線程, 將新的連接套接字傳給AnswerThread入口函數(shù)*/

            }

            4 結束語

            本系統(tǒng)中, 公交車與電子站牌通過網(wǎng)絡實現(xiàn)信息交互, 電子站牌與監(jiān)控中心通過網(wǎng)絡實現(xiàn)信息交互。公交車上用價格低廉的模塊取代現(xiàn)有智能公交系統(tǒng)中的車載模塊, 可節(jié)約硬件成本, 而公交車與電子站牌之間的網(wǎng)絡通信則可實現(xiàn)公交車的定位, 以作為定位的補充, 從而增加了系統(tǒng)的可靠性。

            今后, 隨著3G、WiMAX、Wi-Fi等無線通信技術的成熟以及更加優(yōu)化的衛(wèi)星定位技術的出現(xiàn), 定會出現(xiàn)越來越多的智能公交系統(tǒng)方案, 從而在更大程度上推動智能公交系統(tǒng)的發(fā)展。

          tcp/ip相關文章:tcp/ip是什么



          上一頁 1 2 3 下一頁

          關鍵詞: ZigBee GPS GPRS Xbee Pro模塊

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();