我通過發送給在RaspberryPi Zero上運行的Python的UDP從Mac上的MaxMSP發送ints。然後使用其自己的庫將整數發送到點陣顯示器(Micro Dot Phat)。通過UDP發送的Ints是字節
我遇到的問題是整數被顯示爲;
b'int \ X00,I \ X00 \ X00 \ X00 \ X00 \ X00 \ X00
印刷和當作爲字符串到顯示寫入時。
我已經花了兩天時間搜索這個,並嘗試了幾個相關問題上的建議struct.unpack,int.from_bytes和解碼('UTF-8')方法,但似乎無法提取(1,2 ,3,4,5等),我想在顯示屏上顯示。
顯示需要一個write_string,所以我想我需要將字節格式轉換爲一個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發送字符串不是整數
write_string(mystring, kerning=False)
show()
這個發送到DOTMATRIX顯示
print (mystring)
方法我試圖轉換輸入的字節沒有任何運氣;
data = data.decode('utf-8')
struct.unpack('<' + 'B'*len(data), data)
int.from_bytes(data, byte order='little')
data = struct.unpack(data) [0]
向我們展示代碼,那證明你嘗試過的東西代碼。這不是一個作爲服務平臺的編碼! – WilomGfx
在我的Mac上問了問題,代碼在我的Pi上,所以不僅僅是複製和粘貼代碼的情況......不期望按需編碼只是關於哪種方法可能工作的一般指針......但是現在將代碼發佈。 – dvectR