I am new the Python 3.7 and I am trying to read bytes from a serial port using the following code. I am using pySerial
module and the read() function returns bytes
.
self.uart = serial.Serial()
self.uart.port = '/dev/tty/USB0'
self.uart.baudrate = 115200
self.uart.open()
# buffer for received bytes
packet_bytes = bytearray()
# read and process data from serial port
while True:
# read single byte from serial port
current_bytes = self._uart.read()
if current_bytes is B'$':
self.process_packet(packet_bytes)
packet_bytes = bytearray()
else:
packet_bytes.append(current_bytes) <- Error occurs here
I receive the following error:
TypeError: an integer is required
Some idea how to solve?
is
is the wrong operator inif current_bytes is B'$'
. You need==
. You might get away with it for now due to object reuse implementation details, but it's wrong and it will blow up in your face when you make some seemingly-inconsequential change, if it's not going wrong already. – Lash