从 LabVIEW 将字符串传递给 Python 函数
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 的字符串,我希望此函数的长度为 152 到 return。
这是我想在两者之间传递的示例字符串(发送时它们是 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 问题?
谢谢,
JT
UTF8 在解码 Null (0x00) 字符时出现问题。
LabVIEW 对此没有任何真正的担忧,因为它维护了一个长度参数,允许它知道它的字符串有多长。鉴于 python 字符串实际上是列表(没有定义长度),我相信这可能是 python 将空字符解码为字符串结尾的问题。
如果您尝试将字符串作为字节数组传递给 python,然后在 python 中转换为字符串,它应该能够毫无顾虑地处理这个问题。
我正在尝试将字符串从 LabVIEW 传递到 Python 节点。该字符串是一整串需要正确解码的字节 (U8)(它们是通过 UDP 接收的 Google Protobuf 数据)。但是,当我传递一个长度为 152 的字符串时,我只收到一个长度为 ~18 的字符串。我认为文件中有 5 个连续 0 的地方出了问题。还有其他几个可能需要忽略的转义字符。
这是我的 Python (3.6.8) 代码:
def Parse(s):
return str(len(s))
如果我传入长度为 152 的字符串,我希望此函数的长度为 152 到 return。
这是我想在两者之间传递的示例字符串(发送时它们是 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 问题?
谢谢,
JT
UTF8 在解码 Null (0x00) 字符时出现问题。
LabVIEW 对此没有任何真正的担忧,因为它维护了一个长度参数,允许它知道它的字符串有多长。鉴于 python 字符串实际上是列表(没有定义长度),我相信这可能是 python 将空字符解码为字符串结尾的问题。
如果您尝试将字符串作为字节数组传递给 python,然后在 python 中转换为字符串,它应该能够毫无顾虑地处理这个问题。