я получаю сообщение об ошибке в следующей строке:неподдерживаемый тип операнда (ов) для%: «байт» и «ул»
command = input("please type command.example open 1")
#call the serial_connection() function
ser.write(b"%d\r\n"%command)
По существу я хочу вход, написанный пользователем, и разобрать его в сер. писать, не спрашивая для входа и непосредственно положить строку в ser.write
, такие как:
ser.write(b'close1\r\n')
работал нормально, проблема только произошло, когда я пытаюсь использовать результат ввода в строку, чтобы включить в ser.write
немного больше кода:
ser = 0
#Initialize Serial Port
def serial_connection():
COMPORT = int(input("Please enter the port number: "))
ser = serial.Serial()
ser.baudrate = 38400 #Suggested rate in Southco documentation, both locks and program must be at same rate
ser.port = COMPORT - 1 #counter for port name starts at 0
#check to see if port is open or closed
if not ser.isOpen():
print ('The Port %d is open - Will attempt to close lock 1 Stephan: '%COMPORT + ser.portstr)
#timeout in seconds
ser.timeout = 10
ser.open()
command = input("please type command.example open 1")
#call the serial_connection() function
ser.write(b"%d\r\n"%command)
else:
print ('The Port %d is **open** Stephan' %COMPORT)
для каких-либо уточнений, пожалуйста, сообщите.
спасибо за это предложение. с этим я получаю следующую ошибку: ser.write ((«% d \ r \ n»% command) .encode()) ТипError:% d формат: требуется номер, а не str –
Если его str, используйте - % s. Обновление в ответ. –
молодец спасибо –