シリアルデータをサインに送信するPCがあります。私がしたいのは、サインを削除し、.Netプログラムと別のPCを使って自分で表示することです。私は、COMポート(PCからPCへのシリアルケーブル)からデータを読み取る.Netプログラムを持っています - 読み物はうまくいきますが、私が望むデータを正しく解析する方法がわかりません。ラベル。vb.netのシリアルポートデータ受信 - 受信したデータを解析する方法
現在の動作を以下に示します。
コンピュータは取引情報(価格)をcomポートに送信します。 30秒後、文字列の終了を送信します。これにより、もはや情報を表示したくないことを示します。
私はこれを見ることができます価格を含めて、メッセージの開始とメッセージ文字の終わり。私の現在のネットで受け取っているデータの画像は以下の通りです。あなたはそれが01を送信したことに気づくでしょう。次に価格、この場合2000($ 20.00)。その後、30秒後に残りの文字が表示されます。ここで
私の現在のコードです:
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Windows.Forms
Imports System.Drawing
Imports System.ComponentModel
Imports System.Threading
Imports System.IO.Ports
Public Class Form1
Dim myport As Array
Delegate Sub settextcallback(ByVal [text] As String)
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'This is the connect button
SerialPort1.PortName = "COM3" 'Connect on COM3
SerialPort1.BaudRate = "1200" 'Set BaudRate to 1200
SerialPort1.Open()
Button1.Enabled = False
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
'this is the disconnect button
SerialPort1.Close()
End Sub
Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
ReceivedText(SerialPort1.ReadExisting)
End Sub
Private Sub ReceivedText(ByVal [text] As String)
'now we display the information
If Me.RichTextBox1.InvokeRequired Then
Dim x As New settextcallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.RichTextBox1.Text &= [text]
End If
End Sub
End Class
は、どのように私は大手01を解析することができ、そしてただ、この場合には、ラベル内の$ 20.00表示 - さんがそれを呼びましょう"label1"、私は末尾の '01'を受け取るまで。最後の「01」を受け取ったら、ラベルをクリアしたいと思います。
私は、一度に1つのデータが入ってくるので、スレッドのテキストボックスをクリアしようとしましたが、それは私が探している結果を与えません。
出力は常に$ XXXXX $ XXのようなものですか? – noidea
@noideaはい - 出力は内側の4文字を除いて全く同じです。私は小数点を追加する能力も持っているので、解析が容易になる。例:$ 012000 $ 01 $ 011500 $ 01または、私はすることができます:$ 0120.00 $ 01あなたは考えを得る - それは私たちはもはやそれを表示する必要があることを示すために、30秒後に$ 01後続の$ 01をリードしています。 – Shmewnix
これで、richtextboxの出力値を書式設定したいだけですか?それをラベルに入れますか? – noidea