blochの日記

自虐ネタ以外のぐちは書かないようにしましょう

USB−IO2.0(AKI)その3

一応できたのか?
VISAドライバで認識させる(付属ソフトは動かなくなる)
visa32.dllで制御する。コマンドは、
$20+[ポート番号1]+[1の値]+[ポート番号2]+[2の値]+[0]+....+[0](64番目)
で良い。プルアップされた4ビットは、J2の方なので、ポート番号2で、一応動く。しかし、、、、

値にゼロを代入すると、うんともすんとも言わない。無反応。再び、1以上の値を入れればOK。どういうことだろう?
よく調べると、先にゼロを入れると、後のポート制御が無反応になるようだ。もしかして、viWriteの実装を失敗してるか?
扱いやすいのでパスカル文字列sを使って、

buf:ViBuf; { ViBuf=packed array[0..1000100]of char; }

strcopy(buf,pchar(s));
n:=strlen(buf);
stat := viWrite(vi,buf,n,retCnt);

としてるンだけれど、もしかして、「s」にヌル($0)が含まれているとそこで文字エンドとみなされたりして、、、。
これがホントのジ・エンド。