毕业论文

打赏
当前位置: 毕业论文 > 电子通信 >

基于VB.NET的辐射报警仪上位机管理软件设计(10)

时间:2017-02-08 13:10来源:毕业论文
(3) 打开与关闭串口 在创建一个SerialPort 对象,设置串口属性后,可以通过 Open()方法打开串口。数据读写完成后,可以通过Close()方法关闭串口。根据经验,


(3) 打开与关闭串口
在创建一个SerialPort 对象,设置串口属性后,可以通过 Open()方法打开串口。数据读写完成后,可以通过Close()方法关闭串口。根据经验,对于有些系统,在打开
串口后,还需要将RtsEnable设置为True,这样才能读写数据,否则不能正常读写数据。
本程序中,打开串口的相关程序在SearchPort函数中,当搜索本机可用串口时,便会打开串口。打开串口的程序语句为:
     If SerialPortStatus = False Then
         Try                          
             SerialPort1.Open()
             Threading.Thread.Sleep(500)
             Dim Version As String = ""
             Version = SerialPort1.ReadExisting()
             If InStr(Version, "JB5000") > 0 Then
                 SerialPortStatus = True
                 Return True
             Else
                 SerialPort1.Close()
                 Return False
             End If
          Catch ex As Exception
             ToolStripButton1.Enabled = False
             ToolStripButton3.Enabled = True
             Return False
          End Try
      Else
          Try
              SerialPort1.PortName = ComName
              SerialPort1.Open()
              Return False
           Catch ex As Exception
              Return False
           End Try
     End If
同样,关闭串口的程序如下:
     Private Sub ClosePort()
         SerialPort1.Close()
 End Sub
(4) 利用DataReceived事件进行数据接收
SerialPort提供了DataReceived事件。当有数据进入时,该事件被触发。该事件的触发由操作系统决定,当有数据到达时,该事件在辅助线程中被触发。辅助线程的优先级比较低,因此并不能确保每个字节的数据到达时,该事件都被触发。在使用该事件接收数据时,最好对定义通讯协议格式,添加桢头和桢尾。在DataReceived事件中接收数据时,把数据放在数组中或字符串中缓冲起来,当接收的包含桢头和桢尾的完整数据时,再进行处理。
    本程序在DataReceived事件的通用过程中用到了If...Then...End If语句。如果软件正在运行且布尔型变量SerialPortStatus的值是True,即本机存在可用串口,那么就会用Try...Catch语句,Try语句里面用到了ReadTo方法,串口会一直读取数据,直到输入缓冲区中的"F"为止。F为数据包或指令包的包尾。然后赋值给字符型数组ReceiveBuff。在异步调用的函数的参数里面,会调用CallbackShow通用过程。这个CallbackShow通用过程里面用到了两个If...Then...End If语句。第一个If...Then...End If语句,如果软件正在运行,那么调用通用过程WriteToFile。通用过程WriteToFile主要实现了将数据写入文件的功能,后面将会具体提到。第二个If...Then...End If语句,如果字符型数组ReceiveBuff的长度大于0,那么调用JudgeTaskMode函数。JudgeTaskMode函数里面有关于数据接收的具体形式,是根据协议里面的指令包和数据包对接收到的数据做出具体的反应。 基于VB.NET的辐射报警仪上位机管理软件设计(10):http://www.751com.cn/tongxin/lunwen_2658.html
------分隔线----------------------------
推荐内容