всем,
Я пытаюсь управлять реле с релейной платы через Python и написать следующий код.К сожалению, я всегда получаю ошибку.Может кто-нибудь сказать мне, что я делаю не так?Для строительства я связал документацию (см. Вторую ссылку).Я также нашел другой пост, где кто-то пытается прочитать данные с платы реле (см. Первую ссылку).Но код не работает для меня тоже.
С наилучшими пожеланиями до
Переведено с www.DeepL.com/Translator
Полезная информация
Еще один пост отstackoverflow о считанных данных с Velleman K8090
Документация для платы реле USB (K8090) Вот документация для платы реле USB (Velleman K8090).
Мой код
import serial
ser = serial.Serial()
ser.baudrate = 19200
ser.port = 'COM4'
ser.data_bits = 8
ser.parity = 'N'
ser.stop_bits = 1
ser.flow_control = 'N'
ser.open()
print(ser.is_open)
print(str(bytearray([0x04, 0x11, 0x01, 0x00, 0x00, (((~(0x04 + 0x11 + 0x01 + 0x00 + 0x00)) + 0x01) & 0xff), 0x0f])))
data = str(bytearray([0x04, 0x11, 0x01, 0x00, 0x00, (((~(0x04 + 0x11 + 0x01 + 0x00 + 0x00)) + 0x01) & 0xff), 0x0f]))
ser.write(data)
ser.close()
print(ser.is_open)
Вывод:
True bytearray (b '\ x04 \ x11 \ x01 \ x00 \ x00 \ xea \ x0f') Traceback (последний вызов был последним): файл "C: \ Users \ twinters \ Desktop \ K8090_V2.py", строка 16, в файле ser.write (данные), файл "C: \ Users \ twinters \ AppData \ Local \ Programs\ Python \ Python37-32 \ lib \ site-packages \ serial \ serialwin32.py ", строка 308, в файле write data = to_bytes (data) Файл" C: \ Users \ twinters \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ serial \ serialutil.py ", строка 63, в to_bytes поднять TypeError ('строки Unicode не поддерживаются, пожалуйста, закодируйте в байты: {! R}'. Format (seq)) TypeError: строки Unicodeне суппортПожалуйста, закодируйте в байтах: "bytearray (b '\ x04 \ x11 \ x01 \ x00 \ x00 \ xea \ x0f')"