您的位置 首页 应用

移植VB保护程序到mobile下

Windows CE现在在嵌入式系统应用已经很多了,以前使用EVC的开发多些,开发难度大周期长。VS2005退出后,CF.net2.0对于VB.NET支持很好,使将原来的基于window

Windows CE现在在嵌入式体系运用现已很多了,曾经运用EVC的开发多些,开发难度大周期长。VS2005退出后,CF.net2.0关于VB.NET支撑很好,使将本来的依据windows渠道的Visual Basic保护程序移植到CE上面供给呢或许,本文迁就Visual Basic保护程序移植到CE上面做一个实验性质的开发。

Visual Basic由于其界面开发快速,把握难度低,在嵌入式体系的程序员中运用很广,比如说自己,曾经常常做些单片机的开发,那么一些体系参数或规约的验证,就会顺手写个Visual Basic程序验证下,曾经是VB6.0,后来VB.net多些,VB的开发扩展性好,做界面简略快速,并且便利在调试中修正程序,在验证单片机的程序时是再便利不过了。

最早的人机界面、保护参数根本是经过串口通讯,在计算机或便携笔记本上面显现,设置。跟着嵌入式体系开展,用户要求越来越高,现在很多的设备上面要有显现参数和状况的液晶,关于一些高级设备,更是需求杂乱的用户界面,假如能将设备的保护和状况显现程序移植到依据Windows CE的体系渠道上面去,就会供给快速的软件开发,用户界面会愈加漂亮,开发速度大幅供给,便利嵌入式体系工程师的开发作业,一起依据windows CE的PDA掌上电脑,便利带着,待机时间愈加长,便利现场保护人员和分布式体系的设置和剖析作业。

讲原有的VB.net移植到winCE,比较简略,假如没有运用第三方的windows渠道的控件,能够很简略的移植曩昔,窗体能够很简略的仿制曩昔,代码根本是能够复用的,假如是VB6的程序,移植的难度会大些,窗体部分规划需求从头设置,VB.net的窗体界面和VB的差异很大,能够先依照老的程序的界面设置,在新的程序里边设置,代码方面的移植难度不大,根本的句子仍是相同的,VB.NET支撑界面上的元素能够全新创立,不必想VB那样,从窗口的控件数组里边派生了,并且vb.net能够在运转中界说事情的处理函数,这个对VB是很大的改善,是主动依据规约或界面设置进行处理变得便利快捷。

关于嵌入式体系来说和外界的通讯主要有几个方面,串口(RS485、RS232),网络。网络方面的程序差异不是很大,串口方面,windows下面VB程序员一般是运用MSCOMM来进行通讯,微软在CF.NET2.0里边供给了新的串口开发支撑SerialPort,比1.0和EVC愈加快速。别的VB.NET支撑多线程,使串口开发变得简单。

下面供给一个我自己完成的串口多线程类。

Imports System.IO.Ports

Imports System.Threading

‘232串口操作类

‘2006 6 20 V1.0 by 赵力钊

‘运用说明

‘运用前调用 Init 退出程序或封闭串口运用 Close

‘SendDate 发送数据到串口 回来发送成功与否

‘判别ComStatus 是否为2 数据是否准备好 准备好 调用 ReadData 传空的BYTE数组(能够Redim的),回来数据长度

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

‘输入函数 setting 串口设置如 9600,n,8,1 Type 握手协议 0 没有握手协议 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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/297701.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部