Media Transfer Protocol (MTP)に独自拡張を施したものがTHETA USB APIです。

Linuxの場合、gphoto2というコマンドラインツールを使うと、簡単にTHETAのUSB APIを呼び出せます。MTPのオペレーションやプロパティを意識せずにUSB経由でTHETAを操作できるコマンドも揃っています。--debugオプションをつけてコマンドを実行すれば、実際に呼ばれる一連のMTPのオペレーションを確認できます。

gphoto2コマンドの使用方法の表示

$ gphoto2 --help

デバイスプロパティの取得

Filterプロパティ(0xD80B)の値を取得します。

$ gphoto2 --get-config=d80b

Noise reductionに設定されているというレスポンスです。

Label: PTP Property 0xd80b
Readonly: 0
Type: MENU
Current: 2
Choice: 0 0
Choice: 1 2
Choice: 2 3
END

すべてのデバイスプロパティの値を取得します。

$ gphoto2 --list-all-config

レスポンスの一部です。

/main/actions/powerdown                                              
Label: Power Down
Readonly: 0
Type: TOGGLE
Current: 2
END
...中略...
/main/other/d83f
Label: PTP Property 0xd83f
Readonly: 0
Type: MENU
Current: 0
Choice: 0 0
Choice: 1 1
END

デバイスプロパティの設定

Filterプロパティ(0xD80B**)**の値をHDR(0x03)に設定します。レスポンスはありません。

$ gphoto2 --set-config=d80b=3

MTPオペレーションの呼び出し

写真を撮影するためにInitiateCaptureオペレーション(0x100E)を呼び出します。パラメータが2つ必要です。レスポンスはありません。

 $ gphoto2 --set-config=opcode=0x100e,0x00000000,0x00000000