現在主に更新しているのはwikiですので、最新の情報はwikiを参照してください。
FlashAir開発者向け非公式wiki
---
FlashAirのLuaスクリプト実行機能に、
起動時に実行する"LUA_RUN_SCRIPT"という設定がありますが、これが結構クセモノです。
なにがクセモノかというと、スクリプトでエラーが起きたことを知る手段がありません。
それだけなのですが、それが本当に致命的。文法エラーひとつわからない。
ので、そんな時の切り分け方を以下に記します。
0. ファームウェアバージョンを確認する
CONFIGファイルのVERSIONを確認してください。
末端がW3.00.00の場合は古いバージョンですので、ファームウェアアップデートをしてください。
Luaスクリプトの実行に関していくつものバグが有ります。
1. ブラウザから実行できるか確認する
起動時に動くスクリプトなら、ブラウザからも実行できるはずです。
公式チュートリアルだとなぜか、一番最初にやることが起動時に実行になってますが、
正直ハマります。まずはブラウザからLuaスクリプトを叩いて実行できるか確認しましょう。
それで実行できないものはそもそも起動時にも実行できません。
FlashAirでは、実行エラーは出力なしのだんまりになります。
ちなみに、手前味噌ですが、FlashTools Lua EditorのDebug機能を使うと、
具体的に何のエラーが起きているのか知ることができます。
2. CONFIGの記述ミスをしていないか確認する。
スペルミスをしていませんか?
最終行を空行にしていますか?
3. ファイル書き込みの場合: 差し込んで、10秒待って抜いて、また差し込んでみる
ファイルはブラウザ上ではリアルタイムに更新されますが、
PCなどからは確認できないことが多いです。
というのも、差込時に読み出し、その後の変化は知らんぷりなためです。
なので、実行が終わった辺りで差し込み直すといいでしょう。
ちなみに、LUA_RUN_SCRIPTは暴走防止等で、起動から実行まで最低5秒くらい待たされます。
4. 通信系の場合: スクリプトの頭に30秒〜60秒くらいの待ち時間を入れてみる
割と見落としがちなのですが、LUA_RUN_SCRIPTはWi-Fi接続が確立する前から
実行が始まります。ので、スクリプト起動後すぐにfa.requestなどの通信をしようとしても、
どうやってもうまく行きません。
ブラウザでは動くのに起動時に動かないの大抵はこれです。
おまけ. fa.pioを叩きまくるとホスト機器と通信不能になります。
参考になれば幸いです。
ほかいろいろ
https://sites.google.com/site/gpsnmeajp/electricmemo/flashair
あわせてこちらもどうぞ。
FlashAirからfa.requestを投げる時の注意
FlashAirでLuaスクリプトを組む時のコツ
fa.spiの挙動(秋月 FlashAir DIP IOボードキットでfa.spiが動かない問題)
#FlashAir をいじっている記録
FlashAir上でLuaスクリプトのエラーを表示する
おすすめ
FlashTools Lua Editor (FTLE)
割と見落としがちなのですが、LUA_RUN_SCRIPTはWi-Fi接続が確立する前から
実行が始まります。ので、スクリプト起動後すぐにfa.requestなどの通信をしようとしても、
どうやってもうまく行きません。
ブラウザでは動くのに起動時に動かないの大抵はこれです。
おまけ. fa.pioを叩きまくるとホスト機器と通信不能になります。
スクリプト内でfa.pioをループで叩き続ける場合は、必ず成功可否をチェックし、
(少なくともスクリプトの頭でチェックし)失敗している場合は無理に叩き続けないようにしましょう。
起動猶予時間を使えば脱出は可能ですが、半分文鎮みたいになります。
参考になれば幸いです。
ほかいろいろ
https://sites.google.com/site/gpsnmeajp/electricmemo/flashair
あわせてこちらもどうぞ。
FlashAirからfa.requestを投げる時の注意
FlashAirでLuaスクリプトを組む時のコツ
fa.spiの挙動(秋月 FlashAir DIP IOボードキットでfa.spiが動かない問題)
#FlashAir をいじっている記録
FlashAir上でLuaスクリプトのエラーを表示する
おすすめ
FlashTools Lua Editor (FTLE)