我从Mac上的MaxMSP通过UDP发送int到运行在raspberrypizero上的Python。然后,INT被发送到一个使用自己的库的点阵显示器(Micro-dot-Phat)。在
我遇到的问题是int被显示为
b'int\x00,i\x00\x00\x00\x00\x00\x00
无论是打印还是作为字符串写入显示器。在
我花了几天时间在google上搜索这个,并尝试了解包结构, int.from_字节和decode('utf-8')方法的建议,几个相关的问题,但似乎无法提取(1,2,3,4,5,等等),我想在显示器上。在
显示需要一个write_字符串,所以我想我需要将字节格式转换为python int,然后是字符串,或者直接转换为字符串。在
任何帮助都将不胜感激。在
按要求编码
import socket
import struct
UDP_IP = "My Pi's IP"
UDP_PORT = 'My chosen port"
mystring = ""
serverSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
serverSOCK.bind((UDP_IP, UDP_PORT))
while True:
data, addr = serverSock.recvfrom(1024)
mystring = str(data)
这允许从MaxMSP发送的字符串按预期显示在显示器上,而不是int
^{2}$这将发送到点矩阵显示
print (mystring)
方法我试图将字节转换为int,但没有任何运气
data = data.decode('utf-8')
struct.unpack('<' + 'B'*len(data), data)
int.from_bytes(data, byte order='little')
data = struct.unpack(data) [0]
您可以使用
int.from_bytes
方法来实现这一点,但是您需要从bytes
字符串中切掉三个初始的b“int”字节。在输出
^{pr2}$如果这不是正确的整数,那么您需要找出数据是如何编码的。在
看起来
\x00,i
也是报头的一部分,因此我们需要将切片操作调整为相关问题 更多 >
编程相关推荐