簡體   English   中英

從LabVIEW將字符串傳遞給Python Function

[英]Passing String into Python Function from LabVIEW

我正在嘗試將 LabVIEW 中的字符串傳遞到 Python 節點。 該字符串是一整串需要正確解碼的字節(U8)(它們是通過 UDP 接收的 Google Protobuf 數據)。 但是,當我傳遞一個長度為 152 的字符串時,我只收到一個長度為 ~18 的字符串。 我認為文件中有 5 個連續 0 的地方出了點問題。 還有其他幾個可能需要忽略的轉義字符。

這是我的 Python (3.6.8) 代碼:

def Parse(s):
    return str(len(s))

如果我傳入一個長度為 152 的字符串,我希望從這個 function 返回 152。

這是我想在兩者之間傳遞的示例字符串(發送時它們采用 ASCII 格式):

0A 95 01 0A 01 47 12 02 31 43 18 1E 20 1E 29 00 00 00 00 00 38 8B 40 31 00 00 00 00 00 EC A3 40 38 AC F2 FB 0B 50 80 89 7A 59 00 00 00 A0 0C FA 85 40 61 00 00 00 E0 32 0F F3 BF 69 00 00 00 60 49 36 46 40 71 7A 9F B9 01 F1 0F A2 40 79 31 67 14 06 29 B5 81 C1 81 01 00 00 E9 EA 15 B6 DB 3F 88 01 C2 F7 D4 E6 11 90 01 01 98 01 01 A0 01 01 A8 01 C8 A7 B6 9B 01 B1 01 08 BF E1 E1 D9 8E 74 41 B9 01 29 5C 8F C2 F1 E4 13 41 C0 01 01 C9 01 7E 44 18 D0 93 6D B3 41

這可能是從 LV 到 Python 的問題嗎? 還是完全是 Python 問題?

謝謝,

捷通

UTF8 在解碼 Null (0x00) 字符時出現問題。

LabVIEW對此並沒有任何真正的顧慮,因為它維護了一個長度參數,允許它知道它的字符串有多長。 鑒於 python 字符串實際上是列表(沒有定義的長度),我相信這可能是 python 將 null 字符解碼為字符串結尾的問題。

如果您嘗試將字符串作為字節數組傳遞到 python 中,然后轉換為 python 中的字符串,它應該能夠毫無顧慮地處理這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM