البيانات الثنائية مع pyserial (الثعبان المنفذ التسلسلي)
-
19-08-2019 - |
سؤال
يبدو أسلوب
وserial.write () في pyserial لإرسال البيانات فقط السلسلة. لدي المصفوفات مثل [0xc0،0x04،0x00] وتريد أن تكون قادرة على إرسال / استقبال لهم عبر المنفذ التسلسلي؟ هل هناك أي طرق منفصلة لأني أولية / O؟
وأعتقد أنني قد تحتاج إلى تغيير صفائف إلى [ '\ xc0'، '\ X04'، '\ x00']، ولا يزال، حرف فارغة قد يمثل مشكلة.
المحلول
وتحتاج إلى تحويل البيانات إلى سلسلة
"\xc0\x04\x00"
والشخصيات خالية ليست مشكلة في بيثون - الجمل ليست فارغة منتهية البايت صفر يتصرف تماما مثل "\x00"
بايت آخر
وطريقة واحدة للقيام بذلك:
>>> import array
>>> array.array('B', [0xc0, 0x04, 0x00]).tostring()
'\xc0\x04\x00'
نصائح أخرى
وهناك طريقة بديلة، من دون استخدام وحدة array
:
def a2s(arr):
""" Array of integer byte values --> binary string
"""
return ''.join(chr(b) for b in arr)
لا تنتمي إلى StackOverflow