从秤中获取最高价值并删除不必要的单词

时间:2014-07-24 22:32:20

标签: vb.net

我创建了一个小程序,通过COM端口从秤中获得重量。但后来我打开了程序。它开始在Label中循环(创建长列表) SV 0 KG 。如果体重增加,它也会循环,例如, SV 0 KG,SV 50 KG,SV 48 KG,SV 0 KG等。

所以我的问题是如何停止循环并始终显示一个值?

第二个问题我可以使用Replace("SV", " ")还是有其他更好的方法?

Dim myPort As Array 
Delegate Sub SetTextCallback(ByVal [text] As String) 

Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    myPort = IO.Ports.SerialPort.GetPortNames()
    cmbBaud.Items.Add(9600) 
    cmbBaud.Items.Add(19200)
    cmbBaud.Items.Add(38400)
    cmbBaud.Items.Add(57600)
    cmbBaud.Items.Add(115200)

    For i = 0 To UBound(myPort)
        cmbPort.Items.Add(myPort(i))
    Next
    cmbPort.Text = cmbPort.Items.Item(0) 
    cmbBaud.Text = cmbBaud.Items.Item(0) 

    btnDisconnect.Enabled = False 

End Sub

Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click
    SerialPort1.PortName = cmbPort.Text 
    SerialPort1.BaudRate = cmbBaud.Text 

    SerialPort1.Parity = IO.Ports.Parity.None
    SerialPort1.StopBits = IO.Ports.StopBits.One
    SerialPort1.DataBits = 8 
    SerialPort1.Open()

    btnConnect.Enabled = False 
    btnDisconnect.Enabled = True 

End Sub

Private Sub btnDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisconnect.Click
    SerialPort1.Close() 

    btnConnect.Enabled = True
    btnDisconnect.Enabled = False
End Sub

Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
    SerialPort1.Write(txtTransmit.Text & vbCr)
    End Sub

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    ReceivedText(SerialPort1.ReadExisting())
End Sub
Private Sub ReceivedText(ByVal [text] As String)
           If Me.rtbReceived.InvokeRequired Then
        Dim x As New SetTextCallback(AddressOf ReceivedText)
        Me.Invoke(x, New Object() {(text)})
    Else
        Me.rtbReceived.Text &= [text]
    End If
End Sub

Private Sub cmbPort_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbPort.SelectedIndexChanged
    If SerialPort1.IsOpen = False Then
        SerialPort1.PortName = cmbPort.Text 
    Else 
        MsgBox("Valid only if port is Closed", vbCritical)
    End If
End Sub

Private Sub cmbBaud_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbBaud.SelectedIndexChanged
    If SerialPort1.IsOpen = False Then
        SerialPort1.BaudRate = cmbBaud.Text 
    Else 
        MsgBox("Valid only if port is Closed", vbCritical)
    End If
End Sub

Private Sub rtbReceived_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rtbReceived.TextChanged

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisconnect.Click
    rtbReceived.Text = " "

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    SerialPort1.Write(txtTransmit.Text & vbCr)
End Sub

0 个答案:

没有答案