東芝から発売されているFlashAirを用いた開発を行う人々向けのまとめwikiです。※本wikiは東芝及びフィックスターズ、キオクシアとは何の関係もありません。お問合わせは管理者へお願いします。

起動時の自動実行スクリプト
LUA_RUN_SCRIPT=/bootscript.lua
FlashAirの持ち味であるファイル書き込み時実行スクリプト
LUA_SD_EVENT=/writescript.lua
これらは,ブラウザと違い出力を確認できないため,デバッグはそのままでは困難です.
ので,以下のようにすることをおすすめします.

-1.事前の動作確認をしておく

FTLEや,Telnetを使って,事前に十分動作確認をしておくと,
妙なエラーに悩まされる心配はかなり減ります.

0.(起動時スクリプトの場合)LEDやLCDを繋いでおく

電子工作的利用の場合に限りますが,LEDなどを接続しておくと,
動作状況の確認に非常に便利です.

1.pcallを使う

pcall関数を使って関数呼び出しをすることで,インタプリタのエラーを
捕まえることができます.この出力をファイルに書き込むことでエラーを残すことができます.

※ただし,pcallは別のファイルにすることをおすすめします.
 というのも,文法エラーが含まれたファイルは読み込んだ時点で落ちるため,
 結果的にエラー出力がされません

debug.lua
f = loadfile("body.lua")
local flag, ret = pcall(f)
if not flag then
   print("!!! Lua error detected.!!!\n")
   print(ret)
else
   print("<!-- OK -->")
end

2. eva.cgiを使う

起動後,eva.cgiを叩くことで,LUAスクリプトが正常に動作しているかわかります.
printの出力も,エラー出力も表示されます.

bootscript.luaの内容
print("running bootscript...")
error("I'M BOOTSCRIPT!") --意図的にエラーを発火させる

eva.cgiの出力
> f_TELNET start
lua /bootscript.lua
running bootscript...
lua: /bootscript.lua:2: I'M BOOTSCRIPT!
stack traceback:
	[C]: in function 'error'
	/bootscript.lua:2: in main chunk
	[C]: in ?
> SCAN CH=1
SCAN CH=2

eva.cgiの場合,リアルタイムに出力されるため,ファイル書き込みが発生しているかどうかも
確認することができます.
lua /writescript.lua

running writescript...
lua: /writescript.lua
:2: I'M WRITESCRIPT!
stack traceback:
	[C]: in function 'error'
	/writescript.lua
:2: in main chunk
	[C]: in ?
> 

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

スマートフォンの方は画面下部よりPC版に切り替えることをおすすめします

アクセス解析中

忍者アナライズ

GoogleAnalytics

編集にはIDが必要です