VISCAプロトコル(RS232C通信)のプログラム
VISCAプロトコル(RS232C通信)のプログラムがうまく動きません。
大学の研究にてSONYのEVI-D100というカメラをパソコンから制御する必要が出てきました。
このカメラはVISCAプロトコル(RS232C通信)で制御するらしく、シリアル通信でコマンドを送る以下のようなプログラムをウェブで見つけて参考にしています。
http://onishi-lab.jp/programming/rs232c_win.html
しかし、短いコマンド(例:カメラを右にパンする、81 01 06 01 10 10 02 03 FF)は動くのですが、長いコマンド(例:カメラのパンチルト上限を設定、81 01 06 07 00 01 0F 0A 05 00 0F 0E 09 08 FF)になるとコマンド中に0が入ると動いてくれません。また、コマンド中に0がなくても思うような動きをしてくれません。
一応自分で通信タイムアウトは書き加えたのですが、それでもうまく動きません
GetCommTimeouts( hCom, &cto ); // タイムアウトの設定状態を取得
cto.ReadIntervalTimeout = 0;
cto.ReadTotalTimeoutMultiplier = 0;
cto.ReadTotalTimeoutConstant = 1000;
cto.WriteTotalTimeoutMultiplier = 0;
cto.WriteTotalTimeoutConstant =1000;
SetCommTimeouts( hCom, &cto ); // タイムアウトの状態を設定
RS232Cについては初心者なのでよくわからないことも多いのですが、どこをどう書き換えれば動くかなどを教えていただけると幸いです。よろしくお願いします。
EVI-D100のマニュアルページへのリンクを貼っておきます。
http://www.totsu.co.jp/isp/ispproducts/pdf/D100_tec.pdf