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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ARM9的物流終端定位功能的設計和實現

          基于ARM9的物流終端定位功能的設計和實現

          作者: 時間:2013-01-04 來源:網絡 收藏
          2)Linux串口通信編程

            嵌入式Linux操作系統(tǒng)使用接口標準POSIX的termios接口來控制串口的行為。在Linux系統(tǒng)中,串口等設備被當作文件進行處理,其程序模塊主體實現如下:

            int fd="open"("/dev/ttyS1",O_RDWRIO_NOCTTY);//打開串口

            ……new_options.c_cflag =~PARENB;//無奇偶校驗

            new_options.c_cflag =~CSIZE;//不隱藏數據位

            new_options.c_cflag =~CSTOP8;//無停止位

            new_options.c_cflag |=CS8;//8位數據位

            cfsetispeed(new_options,B4800);//設置波特率

            4800bit/scfsetospeed(new_options,B4800);

            tcflush(fd,TCIOFLUSH);

            tcsetattr(fd,TCSANOW,new_options);//設置新的設備方式完成串口設置后,就可以使用read( )、write( )函數對串口進行操作。需注意的是,串口默認是阻塞型的,當沒有數據到達時,將會阻塞掛起,這時可以通過多線程編程、串口超時設定或使用select輪詢等方式進行調整控制。本系統(tǒng)主要采用多線程編程實現對串口阻塞的調控,使用的是QT的Qthread類,也可以直接使用Linux自身的多線程函數進行操作。

            3)QT/Embedded編程

          Qt/Embedded是著名的Qt庫開發(fā)商TrollTech正在進行的基于framebuffer的面向嵌入式系統(tǒng)的Qt版本。因其面向對象、跨平臺和界面設計方便美觀而得到廣泛應用。

            本設計采用QT/Embedded 3.3.4版本,它支持SQLITE數據庫驅動,便于數據庫操作與編程。設計主要使用了QTE的畫布模塊、SQL模塊和網絡模塊。畫布模塊中,QCanvas庫是一個高度優(yōu)化的二維繪圖庫,與其它畫布模塊結合使用,能很方便地實現導航地圖的顯示、縮放、漫游以及鷹眼等功能。而SQL模塊和網絡模塊能很方便地實現數據庫編程和網絡通信功能,極大地縮短了程序的開發(fā)周期,提高了開發(fā)效率。

            初步實現定位誤差主要取決于GPS-OEM模塊的定位精度,實驗顯示本系統(tǒng)能初步滿足物流信息終端對的需求。

            結束語

            實驗證明:系統(tǒng)定位數據精確、界面友好、系統(tǒng)可擴展性強,較好地完成了物流信息化終端。本系統(tǒng)可用于定位導航,也可適用于其它需要定位導航服務的場合,具有較普遍的適用價值和參考價值。

          參考文獻:

          [1].20Tdatasheethttp://www.dzsc.com/datasheet/20T_139814.html.
          [2].RS232datasheethttp://www.dzsc.com/datasheet/RS232_585128.html.
          [3].CS8datasheethttp://www.dzsc.com/datasheet/CS8_2332280.html.


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(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); })();