2014-12-05 32 views
0

因此,我有下面的代碼連接到尋呼機,我遇到的問題是有時'頁面消息'將分裂兩個實際的「頁面」但如果它的分割將始終包含(2的第1部分)或(2的第2部分),我的問題是,我的子接收頁面數據,然後調用子Parse_Page這是罰款單頁按摩。VB.NET如何從串口等待第二個接收兩個值

我試着用if語句測試一下,如果PageData.contains(「((1的第1部分)」),這一切都很好,但我需要將該字符串存儲在某處並以某種方式等待該部分消息到達之前將第1部分和第2部分放在一起並調用「Parse_page」子部分。我已經嘗試過各種各樣的if和array,但是我對於必須發生的事情感到困惑。任何想法如何做到這一點?

Public Sub serial_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles serial.DataReceived 

    Dim PageData As String = serial.ReadLine 

    Parse_Page(Nothing, Nothing) 

End Sub 

回答

0

只需使用全局變量。

Dim PageData1 As String = String.Empty 
Dim PageData2 As String = String.Empty 

Public Sub serial_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles serial.DataReceived 

    If String.IsNullOrEmpty(PageData1) = True Then 
     PageData1 = serial.Readline 
    ElseIf String.IsNullOrEmpty(PageData2) = True Then 
     PageData2 = serial.Readline 
     PageData = PageData1 & PageData2 
     PageData1 = String.Empty 
     PageData2 = String.Empty 
     Parse_Page(Nothing, Nothing) 
    End If 

End Sub 
+0

感謝但這只是測試,如果當前頁面包含了一組字符串,我能做到這一點,並測試「的2第1部分」的例子,但我怎麼拍攝第一部分消息,然後等待第二部分到達然後把它們放在一起? – user2828045 2014-12-06 08:46:21

+0

剛編輯我的答案。您可能需要在每個IF部分進行一些額外的檢查,以檢查它是否確實是需要的數據。但取決於您的傳入數據 – 2014-12-09 07:57:10