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

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 基于無線通信技術(shù)的智能公交系統(tǒng)設(shè)計(jì)

          基于無線通信技術(shù)的智能公交系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2012-10-23 來源:網(wǎng)絡(luò) 收藏

          圖8 電子站牌RX的API幀結(jié)構(gòu)圖

          本文引用地址:http://www.ex-cimer.com/article/196289.htm

          3.3 GPRS網(wǎng)絡(luò)通信設(shè)計(jì)

          電子站牌收到公交車發(fā)來的信息后, 將通過GPRS-DTU發(fā)送到監(jiān)控中心, 然后由監(jiān)控中心將所有公交車發(fā)來的信息通過Internet發(fā)送給站牌。

          GPRS DTU有透傳模式、AT+i命令模式、自動(dòng)IP注冊模式、遠(yuǎn)程維護(hù)和流控五種模式。在系統(tǒng)的電子站牌終端中, DTU將使用透傳模式與服務(wù)器進(jìn)行信息的交互。通過透傳模式可將電子站牌異步串口通信轉(zhuǎn)換成基于TCP/UDP協(xié)議的網(wǎng)絡(luò)通信。其主要目的是通過串行通信的簡單設(shè)備實(shí)現(xiàn)在IP網(wǎng)絡(luò)上的通信, 而數(shù)據(jù)格式不發(fā)生任何改變。這一點(diǎn)非常重要, 由于數(shù)據(jù)格式在經(jīng)過DTU前后均不發(fā)生任何變化, 由此, 電子站牌原有的設(shè)備及軟件不用作任何升級, 就可直接應(yīng)用。

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

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

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

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

          {//創(chuàng)建線程時(shí)把服務(wù)器建立的新套接字傳給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] ='看屁屁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); })();