FlashAirでLuaを実行する
このチュートリアルでは、 基本的なスクリプトの実行方法をみていきます。 Luaスクリプトの実行方法には下記の3種類があります。
それではさっそく”Hello World”プログラムを実行してみましょう。まずは簡単なluaスクリプトを作成しておきます。
/HelloWorld.lua
print("Hello World!")
local file = io.open("Hello.txt", "a")
file:write("Hello There!\n")
file:close()
このスクリプトは、 Hello World! と出力し、 Hello.txtファイルに、 Hello There! という文字列を追加します。
FlashAir起動時に実行する
- 作成したLuaスクリプトをFlashAirのルートフォルダに保存します。
- /SD_WLAN/CONFIGファイルに、LUA_RUN_SCRIPTパラメータを追加します。スクリプトのファイルパスを指定します。引数には、スクリプトのファイルパスを絶対パスで指定します。
LUA_RUN_SCRIPT=/HelloWorld.lua
- FlashAirをSDメモリカードスロットから一旦取り出し、再度挿入します。
- 以降、起動5秒後に指定したLuaスクリプトが実行されます。
- FlashAirをSDメモリカードスロットから一旦取り出し、再度挿入後、Hello.txtファイルを開きます。
- Hello.txtファイルに、 Hello There! という文字列が表示されます。
FlashAirへのファイル書き込み時に実行する
- 作成したLuaスクリプトをFlashAirのルートフォルダに保存します。
- /SD_WLAN/CONFIGファイルに、LUA_SD_EVENTパラメータを追加します。スクリプトのファイルパスを指定します。引数には、スクリプトのファイルパスを絶対パスで指定します。
LUA_SD_EVENT=/HelloWorld.lua
- FlashAirをSDメモリカードスロットから一旦取り出し、再度挿入します。
- 以降、SDメモリカードの書き込みが発生した場合に指定したLuaスクリプトが実行されます。ファイルをFlashAirにコピーしたり、FlashAirに保存されたファイルを編集してみましょう。
- FlashAirをSDメモリカードスロットから一旦取り出し、再度挿入後、Hello.txtファイルを開きます。
- Hello.txtファイルに、 Hello There! という文字列が表示されます。すでに実行済みの場合は、文字列が追加されます。
LUA_RUN_SCRIPTとLUA_SD_EVENTを併用する
LUA_RUN_SCRIPTとLUA_SD_EVENTを併用することができます。LUA_RUN_SCRIPTの動作が終了するまでLUA_SD_EVENTは無視されます。LUA_RUN_SCRIPTが実行終了した後LUA_SD_EVENTが実行可能になります。
LUA_RUN_SCRIPTはFlashAirへの電源投入の5秒後に実行されます。LUA_SD_EVENTはデータの書き込み終了後500ms後に実行されます。
FlashAirへのHTTPアクセス時に実行する
- HTTPリクエストに対する応答を標準出力に書き込むLuaスクリプトを作成します。出力にはHTTPレスポンスヘッダも含む必要があります。
- 作成したLuaスクリプトをFlashAirのルートフォルダに保存します。
- FlashAirに無線LANで接続したPCのブラウザなどのクライアントプログラムから、スクリプトのファイルパスを指定します。
http://flashair/HelloWorld.lua
- スクリプトの標準出力がブラウザの画面に表示されます。
- Hello.txtファイルに、 Hello There! という文字列が表示されます。すでに実行済みの場合は、文字列が追加されます。
サンプルコード
このサイトのサンプルコードは二条項BSDライセンスで提供されています。