Я не могу правильно получать данные, отправленные с одного com-порта на другой com-порт - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь установить соединение, в котором я хочу отправить данные с одного моего COM-порта с именем COM4 и получить его в COM5 .. Я установил соединение с использованием RS485 .. Я не получаю правильные данные, которые у меня естьотправленный с COM4 на мой COM5 ... иногда я получаю немного корректно, а иногда нет ... я держал скорость 9600 в обоих концах ... но все же это не надежно, то есть вероятность получения правильных данных каждый раз, когда не уверен ...

Код для получения выглядит следующим образом:

import serial
import time

ser=serial.Serial(port='COM5',baudrate=57600,timeout=1)
recv=[]
while True:
    print(ser.read())

Код отправки выглядит следующим образом:

import serial
import time

ser=serial.Serial(port='COM4',baudrate=57600,bytesize=8)
print(ser.portstr)
ser.write(serial.to_bytes([100,101]))
ser.close()

Я получаю некоторые d и e в приемнике

1 Ответ

0 голосов
/ 27 сентября 2019

d и e - это именно то, что вы отправляете, когда записываете байты 0x64 (dec 100) и 0x65 (dec 101) на вашем порту.Вы, вероятно, получаете байтовый массив, похожий на b'de'.

Если вы хотите получить шестнадцатеричный отпечаток, вы можете попробовать что-то вроде:

hex_string = binascii.hexlify(data).decode('utf-8')

Где data содержит прочитанные вами байтыиз порта.Обратите внимание, что вам нужно import binascii.

Если вы хотите восстановить список отправленных десятичных чисел, вы можете посмотреть на struct.unpack.

...