前回 はFlashAirを差し込んだデジカメが無線LAN親機となる状態で使用することができました。一方、元々存在し使用していた無線LAN環境の子機として登録することはできませんでした。
前者のような使用方法をアクセスポイントモード、後者をステーションモードと呼ぶのだそうです。
FLASHAIRの中身をカードリーダーで見てみると、ルートの下にSD_WLANというフォルダーがあります。この中にCONFIGというファイルが存在します。これをテキストエディタなどで修正することで設定を変更することができます。
CONFIGファイルの例
[Vendor]
CIPATH=/DCIM/100__TSB/FA000001.JPG
APPMODE=5
APPNAME=カードの呼び名
APPSSID=普段使っている無線LAN
APPNETWORKKEY=*************
VERSION=F15DBW3BW4.00.00
CID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PRODUCT=FlashAir
VENDOR=TOSHIBA
TIMEZONE=36
APPAUTOTIME=300000
LOCK=1
MASTERCODE=@@@@@@@@@@@@
APPINFO=0000000000000000
FORMATSETMODE=0
まず重要なのはAPPMODEです。 アクセスポイントモードでは4となっています。これをステーションモードを意味する5に変更します。
APPNAMEでカードの呼び名を任意に定めることができるそうなのですが、あまり役に立ちませんでした。FlashAirのままが良さそうです。
APPSSIDは規定値ではFlashAir_〇〇〇〇となっていますが、ここを普段つかっている無線LANのアクセスポイントの名称に変更します。同様にAPPNETWORKKEYにはその無線LANのパスワードを指定します。上の例ではAPPNETWORKKEYやCID、MASTERCODEを秘匿していますが、実際には正しい値としてください。
以上の変更を行った後、上書き保存してFLASHAIRをデジカメに戻します。デジカメの電源を入れると無線LANのルーターによって192.168.0.18というIPアドレスが割り当てられました。 ただしFlashAirはWindows共有はサポートしていないようですので、エクスプローラで検索をかけてもホームグループにFLASHAIRが現れるというようなことはなさそうです。HTTP通信で情報のやり取りを行います。
今回使用しているデジカメではDCIMフォルダーの101OLYMPというフォルダーに、全ての撮影した写真が保存されますので、curlを用いた下記のスクリプトを実行することでカード内の画像が 無線LAN経由でダウンロードできるようになります。
写真を無線LAN経由で取り出すシェルスクリプトの例
#!/bin/bash
declare -a jpgfile
jpgfile=( \
`curl "http://192.168.0.18/command.cgi?op=100&DIR=/DCIM/101OLYMP" 2>/dev/null |\
awk -F"," 'NR>1{print $2}'` \
)
for (( i=0; i<${#jpgfile[*]}; i++ ))
do
echo $i DCIM/101OLYMP/${jpgfile[$i]}
curl --get "http://192.168.0.18/DCIM/101OLYMP/${jpgfile[$i]}" -o ${jpgfile[$i]}
done