В виртуальной среде с python версии 3.5.2 и pyserial версии 3.4 я не могу записать 10 байтов. Я нюхаю шину с помощью логического анализатора Salae. Тот же код и оборудование работают на виртуальной машине Ubuntu 16, но НЕ на хосте Mac напрямую.
UART_DEVICE = '/dev/ttyUSB0' # '/dev/tty.usbserial-DN04ARYR'
class MyClass():
def __init__(self, port, baudrate=9600, timeout=0.5):
self._serial = serial.Serial()
self._serial.port = port
self._serial.baudrate = baudrate
self._serial.timeout = timeout
self._serial.open()
def __del__(self):
self._serial.close()
def send_test_packet(self):
packet = bytearray([0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A])
print('About to write {}'.format(packet.hex()))
#num_bytes_written = os.write(self._serial.fd, packet)
num_bytes_written = self._serial.write(packet)
print("sent {} bytes".format(num_bytes_written))
mc = MyClass(UART_DEVICE)
mc.send_dummy_packet()
Python и pyserial версия:
$ python --version
Python 3.5.2
$ pip freeze
pyserial==3.4
Версия MacOS: 10.14.3