0

USB エミュレートされたシリアル ライン (FT2232HL) を介して HW と通信します。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"

問題は、それが機能しないことです。ループバックを設定してキュートコムでキャプチャしたのですが、30kB程度しか送信されていないようです(キュートコムログのサイズ)。別のハードウェア (F5U103v を搭載した Belkin USB-シリアル コンバーター) も試しましたが、同じ結果でした。io バッファの可能性があると思いますが、それに関する情報は見つかりませんでした。

編集: 最初の cutecom ログ (ループバックから受信したデータを含む) のサイズは 32725 バイトです (正確に 42126 バイトを送信します)。ログ ファイルを切り捨てずにスクリプトを 2 回実行すると、サイズは 81838 バイトになります。呼び出しの戻り値も確認しましたdevice.write()が、正確には 42126 です。

4

1 に答える 1

0

それは私の愚かなせいでした。cutecom では、ログ ファイルを閉じなかったので、欠落しているデータは write() バッファにありました。別のバグが原因でデバイスが機能しませんでした。

于 2011-03-20T09:06:26.920 に答える