Я пытаюсь отправить эту команду «: 01050801FF00F2» по последовательному в python 2.7, без успеха. код, который я использую:Отправка последовательного сообщения в python
import serial, sys ,socket
from time import sleep
port = "COM9"
baudRate = 9600
try:
ser = serial.Serial(port, baudRate, timeout=1)
if not ser.isOpen():
ser.open()
except Exception, e:
print("Error opening com port. Quitting."+str(e))
sys.exit(0)
print("Opening " + ser.portstr)
#this is few ways i am trying to send with
c = '01050801FF00F2'
ser.write(c.encode('utf-8'))
sleep(3)
ser.flushInput() #flush input buffer, discarding all its contents
ser.flushOutput()#flush output buffer, aborting current output
#and discard all that is in buffer
c = ':01050801FF00F2'
ser.write(c.encode('hex'))
sleep(3)
ser.write(':01050801FF00F2')
Можете ли вы дать добавить журнал ошибок, что вам получаются. Также вы пробовали использовать pyserial –
У меня нет ошибки, но сообщение не достигло его destinatio n, поэтому я предполагаю, что с моим кодом что-то не так. (я предполагаю, что, поскольку на другом языке (tcl) он работает). что такое pyserial? – user3903403
oh my bad i havent правильно посмотрите на код, что вы уже используете pyserial пакет python. Попробуйте добавить эту строку в конец - ser.close(). Также удалите flushOutput, потому что он закрывает соединение –