連續封包特定字串擷取

大家好,

我想請問大家,

我利用RS232擷取資料,速度為115200。

擷取到的資料為 A23aB12bC45cA89a,

因為此筆資料內包含三種資訊。

想請問要如何截取出被Aa包住的23、89、被Bb包住的12、被Cc包住的45。

有稍微爬文,可以利用Match Pattern 做出。

如下圖,但是我無法取出被Aa包住的89。

還有一個小問題,現在是使用暫定的一段字串,

但實際上,會一直連續擷取。想請問大家都是如何連續擷取資料。

麻煩大家指點一下。謝謝。

![](upload://4Oz5iMe7aRsvcT5gCF6fe1r9TZI.png)

fu065340666.5292361111

你既然知道a的"abbc"要從A的"c"連接,就應該知道要如何找到89,下面用小畫家修改的程式給你參考:

 

![](upload://hcTGfvSJy9GiY1qXHirIdeZSZtA.jpeg)

不好意思,沒有發問清楚。

上述的字串是一大串裡面截取出來,

所以不太能一直增加FRAME來做取值的動作。

他會是很長一段從RS232傳來的訊息,也不一定會斷在哪裡。

所以上面我還有做一個ASCII相減做比對的值出來。做DOUBLE CHECK。

不過還是感謝你幫我看完問題。感激。

所以你是要取出RS232傳回的字串中最後3個Aa,Bb,Cc中間的字串,下面方式給你參考

Untitled 1.vi

![](upload://rsBxckAbWH9TcKKadg0P9y3QN7i.jpeg)

DonWang40666.5768518519

不好意思,我的意思不是那樣。

我有一個微控制器將三種資料ADC後透過UART傳送到電腦端上的LABVIEW。

我給予三種資料封包,以便我容易解析哪種封包屬於哪個資料。

像是A23a、B12b、C45c這三種就是分別是我三種資料。

我想透過LABVIEW將連續傳送的三種資料封包拆開,繪製成圖形。

不好意思 ,再次打擾您了。

試試看是你需要的嗎?

Untitled_1[1].vi

Don Wang大哥非常感謝你。

我已經完成了大部分結果。

但是想另外請教你一個問題。

我利用RS232接收,送到Queue做運算畫圖。

不知道為啥會畫的很慢...甚至還會ERROR。

參照以往發問,可能把DELAY用高。

但還是會有一樣問題。

請問您知道該如何調整嗎??

附上我的程式碼。感謝你。 謝謝。

UART_QUEUE.vi

 

你ABC這3筆資料是同步嗎?如果同步下面程式給你參考

UART_QUEUE[1].vi

DonWang40669.5559143519

Don Wang大哥

我會出現以下錯誤訊息,

Error -1073807360 occurred at Property Node (arg 8) in VISA Configure Serial Port (Instr).vi

上網蒐尋找不太到,請問你有遇過此種問題嗎??