VB.NET做上位机 serialport控件问题要用委托的形式(界面上拖一个txt_Rect文本框)
Delegate Sub SetTextCallback(ByVal InputString As String)
Private Sub ShowString(ByVal comData As String)
txt_Rect.Text= comData'将收到的数据入接收文字框中
txt_Rect.SelectionStart = txt_Rect.Text.Length
txt_Rect.ScrollToCaret()
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim inData As String = SerialPort1.ReadExisting
Dim d As New SetTextCallback(AddressOf ShowString)
BeginInvoke(d, inData)
End Sub
用C#语言开发上位机(来控制下位机比如了解下位机测量的温度湿度压力并控制下位机)要用到什么知识?这其实已经不仅是上位机的问题了,会同时牵涉到上下位机 , 最主要的一点就是你们要先确定一个通讯协议表,也就是上下位机时通讯用的协议,协议格式通常早都是由命令头、长度、内容、校验位、命令尾这几部分组成的(这个协议可以自己查资料确定一下,比较自由) 。无论是上下位机都按规定的协议去发送数据就可以了 。
这个弄好之后,就要根据你们用的接口来确定用哪种技术了,一般常见的上下位机通讯是用串口,涉及的知识主要是数据的转换(比如字符串或者数字转字节,或者字节转字符等等),这方面去找C#的串口调试工具源码就行了,基本上都有涉及)
用VB的话(这里说的是vb6 , 而不是vb.net),难度其实差不多的 。如果你是指vb.net,它与c#基本上完全一样,二者代码可以用工具相互转换的 。
现在在开发一个上位机应用程序,使用vs2008中的vb.net开发基于wince的应用程序 , 实现对串口采集过来的数据这是我配置vs2005的模拟器 , 你参考一下吧 。
1.在VS2005里新建项目中时,选择创建Platform builder for CE 6.0的OS Design,新项目可以自
命名,这里命名为“MyEmulator” 。
2.创建MyEmulator的向导中 , BSP一定要选择“Device Emulator: ARMV4I”,下一步;
3.模板(Design Templates)选择“PDA Device”,下一步;
4.选择“Mobile Handheld”,下一步;
5.应用程序(ApplicationMedia)就随自己的需要选择 , 下一步;
6.网络和通信(NetworkingCommunications)在此只选择“Local Area Network(LAN)” , 下一步;
7.选择完成;
8.选择Acknowledge;
到此工程建完;
四.添加组件(可以根据需要添加 , 这里主要添加汉字相关的组件)
(1) 添加汉字字库(这里要记得加入,很多人这里没有加入,就出现汉字只看到方框的现象):
1.在Catalog View添加“Core OS”--“CEBASE”--“International”--“Locale Specific support”--“Chinese (Simplified)”--“Fonts”--“SimSunNSimSum(choose 1)”--“SimSunNSimSun”或者“SimSumNSimSun (Subset 2_50)”;
2.在Catalog View添加“Core OS”--“CEBASE”--“International”--“Locale Specific support”--“Chinese (Simplified)”--“GB18030 Data Vonverter”和“Monotype Imaging AC3 Font Compression”;
(2)添加中文输入法:
在Catalog View添加“Core OS”--“CEBASE”--“International”--“Locale Specific support”--“Chinese (Simplified)”--“Input Method Editor”--“MSPY 3.0 for Windows Embedded CE”;
(3) VS2005中菜单“项目”--“MyEmulator(项目名)属性”,配置选择“所有配置”,配置属性--“Build Options” , 在“Build Options”中去掉“Enable KITL (no IMGNOKITL=1)” (这里如果加入了KITL功能的话,可能在模拟器运行的时候,会一直是黑屏的);
(4) “Locale”中 , Locales先Clear All,然后选择“中文(中国)”,Default local选择“中文(中国)”;
(5) 运行VS2005菜单“生成”--“生成MyEmulator”;
五.构建SDK:
1.运行VS2005菜单“项目”--“Add New SDK…”,在SDK属性页中填写必要的信息,属性“Emulation”中Configuration 选择Debug , 可以设置模拟器的显示屏大小及色深,还有内存大?。?在此设置为240 x 320,16色深,128M内存,然后“应用”,“确定” 。。
2. 然后运行VS2005菜单“生成”--“Build All SDK…” , 顺利的话,就会在%WINCEROOT\OSDesigns\ \MyEmulator\MyEmulator\SDKs\SDK1\MSI\下会有MyEmulator.msi;
六.配置VS2005:
1、先安装生成好的MyEmulator.msi 。运行Visual Studio 2005,选择菜单“工具->选项” , 打开选项设置对话框,从左边的树型列表中选择“设备工具->设备”,右边的下拉列表框拉到底可以看到 “MyEmulator”,这就是刚刚生成的那个模拟器 。下面的设备列表里有两项,双击MyEmulator , 设定传输为DMA传输,再点击“仿真器选 项”,在“显示”选项卡里设定好模拟器屏幕尺寸,颜色深度等,全部保存 。
2、用VS2005新建一个智能设备项目 , 向导选择平台时,先删除Pocket PC 2003,选择MyEmulator,完成 。然后按F5运行程序,顺利的话定制的模拟器就会出来了(不过这个过程比较慢,需要等待一段时间) 。
上位机用什么编程?上位机的编程语言很多?。琕C,C,C#,VB,VB 。NET等等,关键是看你熟悉哪种编程语言了,这几种语言都是面向对象的编程语言 。VB入门比较容易,而且比较容易掌握,VB 。NET是VB的升级版本,现在也比较流行 。跟C有关的都需要有C语言的基础 。
如果对上位机的控制要求不是很高的话,或者说对技术先进性上没有太高要求,建议用VB,比较好掌握!
扩展资料:
几种程序语言的区别:java语言、python语言、C语言、PHP语言 。
1、java语言
java语言曾一度家喻户晓,如今虽然潮流已过 , 但java跨平台的优势以及强大的类库着实不容小觑,其他语言很难超越,java衍生除了非常多周边产品(如jsp),非常多的开源系统都是基于java(hadoop、hive、hbase、lucene等) 。
java和c一样也是编译执行的语言,区别在于java编译出的字节码文件运行在一层java虚拟机之上,而虚拟机可以架设在各种操作系统上,所以java也就有了跨平台的优势,一处编译多处执行 。
2、python语言
【vb.net上位机资料 vb上位机如何与下位机通信】python的强大在于它的多功能性,既是解释执行,又可以编译成文件,既是脚本语言,又具有面向对象的所有性质,如今python开源的类库已经非常强大了,什么功能都有,python也成了大数据方向必要的工具 。
3、C语言
C语言是编译执行的语言,是万物之源 。linux下常用的编译器是gcc,c语言源代码可以直接被编译成可执行程序(机器码),被称为万物之源是因为各种语言都是用C语言写的,如java、php、python等 。
4、PHP语言
PHP巨大的生态系统使得在未来几年里全世界需要大量的开发人员对其提供支持 。排名前三的内容管理系统-WordPress、Drupal和Joomla都是使用PHP构建的,而且迄今大概有80%的网站运行在PHP之上 。
vb.net 怎么用事件触发的方式读取串口数据首先:
textbox里没有显示,是因为SerialPort1和TextBox2不是同一线程创建的,需要跨线程操作 。需要用到委托,这样才能显示出来 。
其次:
我觉得用串口的接收数据事件更好一些 。
下面代码供参考:
'----------------------
'串口接收数据事件,其实比用定时器更好 ,
'触发事件的条件可以自己在form_load中设置ReceivedBytesThreshold属性数值,默认为ReceivedBytesThreshold=1
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim strRecvData As String = ""
strRecvData = https://www.04ip.com/post/SerialPort1.ReadExisting
Call disPlayComData(strRecvData)
End Sub
Delegate Sub callback(ByVal strT As String) '定义委托
Sub showString(ByVal comdata As String) '显示结果
Me.TextBox1.Text = "结果:"comdata
End Sub
Sub disPlayComData(ByVal strTmp As String) '判定是否为跨线程
If Me.TextBox1.InvokeRequired Then
Dim d As New callback(AddressOf showString)
Me.Invoke(d, New Object() {strTmp})
Else
Me.TextBox1.Text = strTmp
End If
End Sub
vb.net上位机资料的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于vb上位机如何与下位机通信、vb.net上位机资料的信息别忘了在本站进行查找喔 。
推荐阅读
- 电商平台如何玩,电商平台是怎么操作的
- 电脑显卡怎么比较,显卡如何比较
- 互联网建站与虚拟主机,虚拟网络平台搭建
- ios看图软件be,ios看图软件哪个好
- mysql代码怎么打开 mysql怎么打开
- 视频什么叫抽帧,视频什么叫抽帧模式
- oracle存储过程ifelse,oracle存储过程定时任务设置
- 手机拍摄夜景拍什么,拍摄夜景的手机
- php链接数据库类库 php连接数据库文件