Писериальный входной буфер - PullRequest
0 голосов
/ 08 марта 2011

Я общаюсь со своим 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.

1 Ответ

0 голосов
/ 20 марта 2011

Это была моя глупая ошибка. В Cutecom я не закрывал файл журнала, поэтому отсутствующие данные были в буфере записи (). Устройство не работает из-за другой ошибки.

...