前回はlibpafeでPaSoRi RC-S370を動かした。
今回は(なるべく楽をしつつ)自前のライブラリをPaSoRiで動かそう。
ベースはArduino用に出ているSONYさんのライブラリだ。
そこのシリアル通信部分をlibpafeのUSB送信に置き換えればいける・・・。
と思っていたのだが、そうは問屋が卸さなかった。
オリジナルはシリアルからそのときに必要なサイズだけ取得しているのだが、USBの場合はどうも一辺に取得してしまわないといかんようなのだ。
ACKは取ってこれるのに、なんで次はだめなのかかなり悩んでしまった。
違いはそれだけで、そこを置き換えると動いた。
RC-S620/S版と比較すると、かなり速い。
これはUSB転送が高速だからか、私の作り込みが甘いせいか・・・。
シリアル通信部分は、ifdefがたくさん入ってしまった。
cygwinでRC-S620/S向けの場合は、あまり気にせずにwrite/readさせている。
ブロックされてもいいや、という感じで。
PaSoRi向けの場合は、libpafeのUSBバルク転送を使っているAPIを呼び出している。
通信中はブロックされるのかいな?
AndroidでRC-S620/S向けの場合は、selectとかで非同期で待てるようにしている。
まあ、アプリだけならブロックされていても困りはしないんだけどね。
・・・と思ったが、よく見るとNONBLOCKにしてなかった。
cygwinでFIONREADがうまく動かんので分けたようだ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。