秘匿領域について
本チュートリアルでは、FlashAirの秘匿領域にスクリプトを配置し、CONFIGから動作させる方法を解説します。
スクリプトを秘匿領域に保存する
fa.control(“hid_set_pass”)でパスワードを設定した後、fa.control(“hid_store”)で秘匿領域に保存します。
-- パスワード
password="qwerty"
-- 入力ファイル
filename_org = {
"test.lua"
}
-- 入力フォルダ
foldername = "p:"
---(中略)---
fa.control("hid_clear")
fa.control("hid_set_pass", password)
-- 秘匿領域へファイルを送る
for i,v in ipairs(filename_org) do
send_name = foldername..v
fa.control("hid_store", send_name, password)
end
秘匿領域のスクリプトを実行する
SD_WLAN/CONFIG
に下記のように記述することで秘匿領域のスクリプトを実行することが可能です。
LUA_RUN_SCRIPT=H:filename LUA_SD_EVNET=H:filename
サンプルコードの使い方
サンプルコードを使うことで秘匿領域にスクリプトを配置し、CONFIGをセットアップすることが可能です。パスワードと入力ファイル、入力フォルダを設定したsetting.lua
、秘匿領域に設置したスクリプトを実行するサンプルとしてtest.lua
をFlashAirのルートディレクトリに配置します。
SD_WLAN/CONFIG
をコピーし、SD_WLAN/_CONFIG
という名前のファイルを作成します。
SD_WLAN/CONFIG
に下記を追記し、起動時にスクリプトを実行するように設定します。
LUA_RUN_SCRIPT=setting.lua
秘匿領域に保存されたtest.lua
を実行するために、SD_WLAN/_CONFIG
を下記のように設定します。
LUA_RUN_SCRIPT=H:test.lua
FlashAirを抜き差しすることでスクリプトが秘匿領域に保存されます。test.lua
とsetting.lua
、SD_WLAN/_CONFIG
が削除されていれば問題ありません。10秒程度経過した後、再度FlashAirを抜き差しすることで秘匿領域に保存されたスクリプトが実行されます。
ウェブブラウザからFlashAirに接続するとtest.lua
が実行され、ルートフォルダにHello.txtが作成されていることが確認できます。
setting.lua
では、スクリプトを秘匿領域に保存した後、秘匿領域から読み出し、コンペアを行っています。コンペアに失敗した場合はそこでスクリプトが停止します。該当部分のソースコードを示します。
-- 秘匿領域のファイルを読み出してコンペアする
for i,v in ipairs(filename_org) do
hid_name = hid_drv..v
comp_name = foldername..add_name..v
org_name = foldername..v
-- 秘匿から読み出してコンペアする
fa.control("hid_get", hid_name, comp_name, password)
ret = compfile(org_name, comp_name)
-- 内容が間違ってたらそこで止める
-- 正しければ、書き込みファイルとコンペアファイルを消す
if ret ~= true then
print(v.." is hidden write fail...")
break
else
print(v.." is OK")
-- コンペアファイル削除
fa.remove(comp_name)
-- 元ファイル削除
fa.remove(org_name)
end
end
-- CONFIGファイルを削除
fa.remove("p:SD_WLAN/CONFIG")
-- CONFIGファイルをリネームする
fa.rename("p:SD_WLAN/_CONFIG", "p:SD_WLAN/CONFIG")
サンプルコード
advanced_tutorial_09.zip (4KB)
このサイトのサンプルコードは二条項BSDライセンスで提供されています。