البيانات الثنائية مع pyserial (الثعبان المنفذ التسلسلي)

StackOverflow https://stackoverflow.com/questions/472977

سؤال

يبدو أسلوب

و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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top