Я общаюсь со своим HW через последовательную линию с эмуляцией USB (FT2232HL).Мне нужно отправить растровое изображение, используя pySerial и Python Imaging Library.Вот код:
#!/usr/bin/python2
from PIL import Image
import serial
import string
img = Image.open("db/bitmap.bmp")
img = img.convert("L")
img = img.tostring()
print "img length: " + `len(img)`
device = serial.Serial("/dev/ttyUSB1", 115200, timeout=30)
device.write(size)
device.write(img) #the bitmap has about 40kB
print "image written"
Проблема в том, что это не работает.Я установил петлю, захватывая ее с Cutecom, но, кажется, передается только около 30 КБ (размер журнала Cutecom).Я также попробовал другое оборудование (USB-последовательный конвертер Belkin с F5U103v) с тем же результатом.Я предполагаю, что это может быть некоторый буфер ввода-вывода, но я не смог найти никакой информации об этом.
РЕДАКТИРОВАТЬ: размер первого журнала cutecom (который содержит данные, полученные из обратной связи) составляет 32725 байт (отправка ровно 42126).байт).Когда я дважды запускаю скрипт без усечения файла журнала, его размер составляет 81838 байт.Я также проверил возвращаемое значение вызова device.write()
, это точно 42126.