Комуникирам с моя 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"
Проблемът е, че не работи. Настроих loopback, заснемайки го с cutecom, но изглежда, че се предават само около 30kB (размер на cutecom log). Опитах и друг хардуер (USB-сериен конвертор на Belkin с F5U103v) със същия резултат. Предполагам, че може да е някакъв io буфер, но не можах да намеря информация за него.
РЕДАКТИРАНЕ: размерът на първия журнал на cutecom (който съдържа данни, получени от loopback) е 32725 байта (изпраща точно 42126 байта). Когато стартирам скрипта два пъти, без да съкращавам регистрационния файл, неговият размер е 81838 байта. Проверих и върнатата стойност на повикването device.write()
, тя е точно 42126.