新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 一種智能公交系統方案

        一種智能公交系統方案

        作者: 時間:2012-03-01 來源:網絡 收藏
        widows: 2; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  3.3 GPRS網絡通信設計

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

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

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

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

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

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

          {//創建線程時把服務器建立的新套接字傳給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) ;} //⑤接收電子站牌客戶端的數據



        關鍵詞: 智能 公交系統

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 绵阳市| 江山市| 会昌县| 神木县| 平远县| 商城县| 隆尧县| 浙江省| 区。| 西吉县| 墨竹工卡县| 凯里市| 开阳县| 肇庆市| 额敏县| 甘孜县| 沂南县| 栖霞市| 晋中市| 克拉玛依市| 江川县| 湖北省| 大城县| 镇安县| 当涂县| 花莲市| 监利县| 隆德县| 舒城县| 米林县| 锡林浩特市| 嘉荫县| 乌鲁木齐县| 合作市| 桐城市| 颍上县| 青冈县| 东丰县| 泰宁县| 磐安县| 延寿县|