我想通過串行在python中發送數組[0, 100, 150, 175, 255]
。我將它轉換爲bytearray然後發送它。如何通過串口發送和接收十進制數組?
的數據我收到的樣子
['\x00', 'd', '\x96', '\xaf', '\xff']
,我不能回去[0, 100, 150, 175, 255]
。
有沒有更好的方式來發送和接收這種數據?我是python的新手,對某些方法不熟悉。
這些是我正在使用的代碼。
SEND
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=10)
elements= [0,100,150,175,255]
data2=bytearray(elements)
while True:
ser.write(data2)
RECEIVE
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=10)
vect = []
while True:
vect.extend(ser.read())
謝謝。
真的嗎? 'eval'和''unicode_escape'' ??? –
@ PM2Ring這有什麼問題? –
只有當你沒有別的選擇時才應該使用'eval'。通常應避免「eval」變慢,「eval」和「exec」,因爲它們可能存在安全風險。將任意unsanitised數據傳遞給'eval'是_extremely_不安全。有關詳情,請參閱SO老將Ned Batchelder的[Eval really dangerous](http://edbatchelder.com/blog/201206/eval_really_is_dangerous.html)。 –