SerialPort CurrentPort = null
CurrentPort = new SerialPort()
CurrentPort.ReadBufferSize = 128
CurrentPort.PortName = comName //端口号
CurrentPort.BaudRate = bandRate//比特率
CurrentPort.Parity =parity//奇偶校验
CurrentPort.StopBits = stop//停止位
CurrentPort.DataBits = databit//数据位
CurrentPort.ReadTimeout = 1000//读超时,即在1000内未读到数据就引起超时异常
//绑定数据接收事件,因为发送是被动的,所以你无法主动去获取别人发送的代码,只能通过这个事件来处理
CurrentPort.DataReceived += Sp_DataReceived
CurrentPort.Open()
定义一个变量 byte[] receiveStr
//绑定的事件处锋庆理函数
private static void Sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
SerialPort sp = sender as SerialPort
if (sp == null)
return
byte[] readBuffer = new byte[sp.ReadBufferSize]
sp.Read(readBuffer, 0, readBuffer.Length)
//赋值悉烂
receiveStr=readBuffer//当然你可以通过转换将byte[]转换为字符串。
}
//你要求的按钮事件可睁基漏以这么写
private void button1_Click(object sender, EventArgs e)
{
if(receiveStr!=null)
{
变量 xxx=receiveStr
}
}
首先打开摄像头,右键点击打开摄像头控件的会话端口,创建输入控件,即图上的Session In输入控件,当连接后多个摄像头的时候用户可以进行选择摄像头的一个,再经过一个图像获取配置控件,进入while循环,开始连续采样,循环外的IMAQ是为图像申请一个缓冲区竖春来先存播放的图像。功能:打开一个摄像头,查询这个摄像头的权限,加载摄像头的配置文件,并且为这个摄像余核耐头创建唯一的引用,当完成引用的时候可以用Close Camera 控件关闭这个引用。
功能:配置并开始图像的获取。图像氏首获取在一个循环缓冲区持续的进行获取,使用Grap这个控件从缓冲区中复制图像,如果你在Open Camera控件前调用这个控件,那么那就会默认使用cam0这个引用。可以使用这个Unconfigure这个控件去清除配置
功能:创建一个暂时的缓冲区去加载图像
这个基本上很难。普通的摄像头,基本上都是基于DIRECTSHOW的。而NI对于这方面的支持不是那么理想。你去看NI的VISION下的IMAQ和IMAQDX,都没有这些普通USB相机的IDX文件,不过你可以试着去NI的网站上下一个IDX文件生成器试试。反正我是没弄成功过。我的也是信简不能修改这些属性的,只能自动。你也不要再试图去多做这方面的功了,就算许多国产工业相机,使用NI自己的驱动,也是许多属性是设置不了的。因为这些如圆相机没有经过NI认证,没有相应的IDX文件,所以设置不了也是非常正常的。一般如果有相机(摄像头)自己的驱动如DLL等,那渣坦塌么调用这些DLL会好用许多。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)