码迷,mamicode.com
首页 > Windows程序 > 详细

.NET调用window串口读取电子秤的数据

时间:2015-08-07 12:43:59      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

Private serialPort As SerialPort  ‘定义

Public Function CreateSerialPort() As String
        Dim strWeights As String = ""
        Dim strData As String = ""
        Dim bSetPointNum As Double = 0.0

        If serialPort IsNot Nothing Then
            If serialPort.IsOpen Then
                Me.serialPort.Close()
            End If
            Me.serialPort.Dispose()
        End If

        Try
            serialPort = New SerialPort("COM" + clXML.Read("Login", "bserialPortNames", ""), Integer.Parse(clXML.Read("Login", "bBaudRate", "")), CType([Enum].Parse(GetType(Parity), clXML.Read("Login", "bParity", "")), Parity), Integer.Parse(clXML.Read("Login", "bDataBits", "")), CType([Enum].Parse(GetType(StopBits), clXML.Read("Login", "bStopBits", "")), StopBits))
            serialPort.WriteTimeout = 20000
            serialPort.ReadTimeout = 20000
            serialPort.ReadBufferSize = 20480
            serialPort.WriteBufferSize = 20480
            serialPort.Open()
            Dim portName As String = "COM" + clXML.Read("Login", "bserialPortNames", "")
            If serialPort.IsOpen Then
                Dim readLength As Integer = 8
                Dim offset As Integer = 0
                Dim data As Byte() = New Byte(readLength - 1) {}
                Do
                    Dim byteLenght As Integer = serialPort.Read(data, offset, readLength)
                    offset += byteLenght
                    readLength -= byteLenght
                Loop While serialPort.BytesToRead > 0
                strData = Encoding.[Default].GetString(data)
                bSetPointNum = clXML.Read("Login", "bSetPoint", "")
                SetPoint()
                If IsNumeric(strData) = True Then
                    strWeights = IIf(strData / bSetPointNum < "0", bSetPoint, Val(strData / bSetPointNum))
                    Application.DoEvents()
                Else
                    strWeights = bSetPoint
                End If

                If strWeights = "" Then
                    Return CreateSerialPort()
                End If

            End If
        Catch ex As Exception
            c.MsgInfro(c.GetResource("MyResource", "public_serialPortError"), "Notices", True)
        End Try
        Return strWeights
    End Function

.NET调用window串口读取电子秤的数据

标签:

原文地址:http://www.cnblogs.com/sayshap/p/4710342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!