« 皮膚科専用カメラ Casio DZ-D100 購入 | トップページ | DZ-D100 データ転送 daemon 作成 »

2019年7月 4日 (木)

Casio DZ-D100 API の解析

サポートに api の公開予定はないと言われて,ただ引き下がっている自分ではないので,購入した DZ-D100 でどんな api が使えるのか自分で解析してみた。

SessionOpen

本体の画像ファイルをダウンロードするのに SessionOpen が必要。SessionOpen すると,他端末からのアクセスは受け付けなくなる。arg に指定する数値は何でもよいようだ。

コマンド送信例

$ curl 'http://dzd100-address/casio_dc.cgi?cmd=SessionOpen&arg=0'

レスポンス

<?xml version="1.0"?>
<ccma>
<output>
<result>OK</result>
<operation name="SessionOpen">
</operation>
</output>
</ccma>

SessionClose

SessionClose すると,DZ-D100 の画面に「通信が切断されました」と表示される。SessionClose 後は他端末からのアクセスもできるようになる。

コマンド送信例

$ curl 'http://dzd100-address/casio_dc.cgi?cmd=SessionClose'

レスポンス

<?xml version="1.0"?>
<ccma>
<output>
<result>OK</result>
<operation name="SessionClose">
</operation>
</output>
</ccma>

CheckConnection

DZ-D100 は,起動後しばらく放置すると自動的に電源が切れ,通信も切れてしまう。通信を維持したい場合は,CheckConnection を一定時間毎に送り続ける必要がある。

コマンド送信例

$ curl 'http://dzd100-address/casio_dc.cgi?cmd=CheckConnection'

レスポンス

<?xml version="1.0"?>
<ccma>
<output>
<result>OK</result>
<operation name="CheckConnection">
</operation>
</output>
</ccma>

GetFileList

DZ-D100 に保存されている画像のリストを返す。なぜか最初に必ず NotExecuted が返ってくる。

コマンド送信例

$ curl 'http://dzd100-address/casio_dc.cgi?cmd=GetFileList&arg=All'

レスポンス

<?xml version="1.0"?>
<ccma>
<output>
<result>NotExecuted</result>
<operation name="GetFileList">
</operation>
</output>
</ccma>
<?xml version="1.0"?>
<ccma>
<output>
<result>OK</result>
<operation name="GetFileList">
<argument name="FileNumber" range="All">
<value>/DCIM/100CASIO/CIMG0001.JPG</value>
<value>/DCIM/100CASIO/CIMG0002.JPG</value>
<value>/DCIM/100CASIO/CIMG0003.JPG</value>
</argument>
</operation>
</output>
</ccma>

GetFileInfo

画像の基本的なデータを返す。これも最初になぜか NoExist が返ってくる。

コマンド送信例

$ curl 'http://dzd100-address/casio_dc.cgi?cmd=GetFileInfo&arg=/DCIM/100CASIO/CIMG0001.JPG'

レスポンス

<?xml version="1.0"?>
<ccma>
<output>
<result>NotExecuted</result>
<operation name="GetFileInfo">
<argument name="Reason">
<value>NoExist</value>
</argument>
</operation>
</output>
</ccma>
<?xml version="1.0"?>
<ccma>
<output>
<result>OK</result>
<operation name="GetFileInfo">
<argument name="/DCIM/100CASIO/CIMG0001.JPG">
<value name="type">JPEG</value>
<value name="size">4507328</value>
<value name="width">5184</value>
<value name="height">3888</value>
<value name="orientation">0</value>
<value name="thumb_size">4560</value>
<value name="thumb_width">160</value>
<value name="thumb_height">120</value>
<value name="thumb_orientation">0</value>
<value name="capture_date">20190618T110209</value>
</argument>
</operation>
</output>
</ccma>

data

jpeg 画像データがバイナリで返ってくる。OpenSession していない場合は何も返ってこない。

コマンド送信例

$ curl 'http://dzd100-address/casio_dc.cgi?data=/DCIM/100CASIO/CIMG0001.JPG&arg=Original' > test.jpg

« 皮膚科専用カメラ Casio DZ-D100 購入 | トップページ | DZ-D100 データ転送 daemon 作成 »

いろいろ」カテゴリの記事