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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 移植VB維護程序到mobile下

          移植VB維護程序到mobile下

          作者: 時間:2016-10-08 來源:網(wǎng)絡 收藏

          Windows CE現(xiàn)在在嵌入式系統(tǒng)應用已經(jīng)很多了,以前使用EVC的開發(fā)多些,開發(fā)難度大周期長。VS2005退出后,CF.net2.0對于VB.NET支持很好,使將原來的基于windows平臺的Visual Basic維護程序移植到CE上面提供呢可能,本文將就Visual Basic維護程序移植到CE上面做一個試驗性質(zhì)的開發(fā)。

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

          Visual Basic因為其界面開發(fā)快速,掌握難度低,在嵌入式系統(tǒng)的程序員中應用很廣,比如說本人,以前經(jīng)常做些單片機的開發(fā),那么一些系統(tǒng)參數(shù)或規(guī)約的驗證,就會隨手寫個Visual Basic程序驗證下,以前是VB6.0,后來VB.net多些,VB的開發(fā)擴展性好,做界面簡單快速,而且方便在調(diào)試中修改程序,在驗證單片機的程序時是再方便不過了。

          最早的人機界面、維護參數(shù)基本是通過串口通訊,在計算機或便攜筆記本上面顯示,設置。隨著嵌入式系統(tǒng)發(fā)展,用戶要求越來越高,現(xiàn)在好多的設備上面要有顯示參數(shù)和狀態(tài)的液晶,對于一些高檔設備,更是需要復雜的用戶界面,如果能將設備的維護和狀態(tài)顯示程序移植到基于Windows CE的系統(tǒng)平臺上面去,就會提供快速的軟件開發(fā),用戶界面會更加美觀,開發(fā)速度大幅提供,方便嵌入式系統(tǒng)工程師的開發(fā)工作,同時基于windows CE的PDA掌上電腦,方便攜帶,待機時間更加長,方便現(xiàn)場維護人員和分布式系統(tǒng)的設置和分析工作。

          講原有的VB.net移植到winCE,比較簡單,如果沒有使用第三方的windows平臺的控件,可以很簡單的移植過去,窗體可以很簡單的復制過去,代碼基本是可以復用的,如果是VB6的程序,移植的難度會大些,窗體部分設計需要重新設置,VB.net的窗體界面和VB的區(qū)別很大,可以先按照老的程序的界面設置,在新的程序里面設置,代碼方面的移植難度不大,基本的語句還是一樣的,VB.NET支持界面上的元素可以全新創(chuàng)建,不用想VB那樣,從窗口的控件數(shù)組里面派生了,而且vb.net可以在運行中定義事件的處理函數(shù),這個對VB是很大的改進,是自動根據(jù)規(guī)約或界面設置進行處理變得方便快捷。

          對于嵌入式系統(tǒng)來說和外界的通訊主要有幾個方面,串口(RS485、RS232),網(wǎng)絡。網(wǎng)絡方面的程序區(qū)別不是很大,串口方面,windows下面VB程序員一般是使用MSCOMM來進行通訊,微軟在CF.NET2.0里面提供了新的串口開發(fā)支持SerialPort,比1.0和EVC更加快速。另外VB.NET支持多線程,使串口開發(fā)變得容易。

          下面提供一個我自己實現(xiàn)的串口多線程類。

          Imports System.IO.Ports

          Imports System.Threading

          '232串口操作類

          '2006 6 20 V1.0 by 趙力釗

          '使用說明

          '使用前調(diào)用 Init 退出程序或關閉串口使用 Close

          'SendDate 發(fā)送數(shù)據(jù)到串口 返回發(fā)送成功與否

          '判斷ComStatus 是否為2 數(shù)據(jù)是否準備好 準備好 調(diào)用 ReadData 傳空的BYTE數(shù)組(可以Redim的),返回數(shù)據(jù)長度

          Public Class RS232TXClass

          Shared m_SerialPort As New SerialPort

          Shared readThread As Thread = New Thread(AddressOf Read)

          Public ComSetting As String '9600,n,8,1

          Public ComPort As Integer

          Public ComType As Integer '硬件設置

          Dim strBaudRate As String

          Dim Parity As String

          Dim Handshake As Integer

          Dim DataBits As Integer

          Dim PortName As String

          Dim StopBits As Integer

          Shared _continue As Boolean

          Shared bRxLock As Boolean

          Shared iRxLen As Integer

          Shared iRxTime As Integer

          Shared bRxStatus As Byte

          Const READOK = 2

          Const READOUTTIME = 4

          Const READLOCK = 8

          Const COMOK = 1

          Const COMERROR = 0

          Const COMFREE = 16

          '輸入函數(shù) setting 串口設置如 9600,n,8,1 Type 握手協(xié)議 0 沒有握手協(xié)議 Port 串口號

          Public Sub Init(ByVal Setting As String, ByVal Type As Integer, ByVal Port As Integer)

          ComSetting = Setting

          ComPort = Port

          ComType = Type

          ComInit()

          End Sub

          Sub ComInit()

          Dim iStart As Integer

          Dim iTemp As Integer

          Dim bDate() As Byte

          m_SerialPort = New System.IO.Ports.SerialPort()

          iStart = InStr(1, ComSetting, ,)

          strBaudRate = Mid(ComSetting, 1, iStart - 1)

          iTemp = InStr(iStart + 1, ComSetting, ,)

          Parity = Mid(ComSetting, iStart + 1, iTemp - iStart - 1)

          iStart = iTemp + 1

          iTemp = InStr(iStart, ComSetting, ,)

          DataBits = CInt(Mid(ComSetting, iStart, iTemp - iStart))

          iStart = iTemp + 1

          StopBits = CInt(Mid(ComSetting, iStart, Len(ComSetting) - iStart + 1))

          m_SerialPort.BaudRate = strBaudRate

          Select Case Parity

          Case n

          m_SerialPort.Parity = IO.Ports.Parity.None

          Case N

          m_SerialPort.Parity = IO.Ports.Parity.None

          Case e

          m_SerialPort.Parity = IO.Ports.Parity.Even

          Case E

          m_SerialPort.Parity = IO.Ports.Parity.Even

          Case o

          m_SerialPort.Parity = IO.Ports.Parity.Odd

          Case O

          m_SerialPort.Parity = IO.Ports.Parity.Odd

          End Select

          m_SerialPort.DataBits = DataBits

          Select Case StopBits

          Case 0

          m_SerialPort.StopBits = IO.Ports.StopBits.None

          Case 1

          m_SerialPort.StopBits = IO.Ports.StopBits.One

          Case 2

          m_SerialPort.StopBits = IO.Ports.StopBits.Two

          End Select

          Select Case ComType

          Case 0

          m_SerialPort.Handshake = IO.Ports.Handshake.None


          上一頁 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); })();