Olympus TGとWi-fiコントロール・プログラム編 | Nature | Photography | Music | Art

Nature | Photography | Music | Art

日々好奇心の趣くまま

サイト内の写真の使用ならびに無断転用を禁じます。

前回TG3コントロールの基本の箇所を簡単なbashスクリプトを用いて実験しましたが、やはりOlympusのプロトコルはきちんとプログラムからコントロールしないとその実力は出せないようです。

とりわけライブビューで画像をモニターしながらコントロールするにはhttpプロトコルとは別にUDPをベースにしたRTPプロトコルに対応する部分を別途用意してライブビュー画像のストリームを行う必要があります。(OPC仕様書参照)

ということで、ちょっと頑張ってライブビューを含めた簡易プログラムを組んでみました。

https://github.com/delphinus1024/tg3_ctrl

RTPプロトコルの実装部分は結構苦労しました。まだ試していませんが、もしかしたらGStreamerとかを使うともっと簡単にこの部分をインプリメントできるのかも。

Win7&10で動作確認しています。MinGW+Winsock2を使っているので、MacやLinux移植するにはそのあたりを修正する必要があるかと思います。

動作は今のところかなり不安定で、環境によってはいろいろ調整しないと動作しないかもしれませんので弄れるのは自己対処ができる方限定になるかと思います。

また、firewallはOFFにしないとRTP部分の通信が阻害されてしまうようで、このあたりもWindows用のOI Shareが出ない理由なのかもしれません。

構築にはOpenCVとBoostC++(thread,filesystem)のライブラリが必要です。

構築方法や実行方法はreadmeをご覧頂くとして、

./tg3_ctrl.exe
を立ち上げると、成功すればAモードに切り替え後、ライブビュー画像のウインドウが表示されるはず。
フォーカスを合わせたい箇所をクリックすればそこにフォーカスが当たり、リターンキーで撮影、ESCで終了します。

とりあえずは最小限の動作をするテンプレートの位置づけで、まだ実験段階のためリファクタリングもしていないのでコードが汚いのはご了承ください。

コード中には現状使用していない部分もいろいろ入っていますが、それは将来の拡張用です。

この内容の利用によって生じた損害については一切の責任を負いません。