←前
目次
次→

Luaスクリプト機能

$Date: 2009/11/20 06:05:25 $

Windows用シミュレーター

Windwos PC 上で Lua スクリプトを動作させるためのシミュレーションツールとして、RT シリーズ用ユーティリティの公開ページで "Lua スクリプト機能 Windows用シミュレーター lua-rt.exe" を公開しています。

RT シリーズ用ユーティリティ
http://www.rtpro.yamaha.co.jp/RT/utility/

lua-rt.exe を使用すれば、Lua スクリプトの文法チェックや動作確認が Windows PC 上で行えます。ただし、ルーター API に関しては、Windows 上では動作させることができないため、引数のチェックやメッセージを出力するのみといった擬似的な動作をします。

使用方法

RTシリーズ用ユーティリティページから lua-rt.exe をダウンロードし、Windows PC に保存します。例として、C:\Lua というフォルダに lua-rt.exe を保存し、同じフォルダ内にある auto_qos.lua というスクリプトファイルの文法チェックを行う場合、コマンドプロンプト画面から下記のように入力します。

C:\>cd Lua
C:\Lua>lua-rt.exe  auto_qos.lua

rt_sleep: 30
  This is simulation, so just wait only 1sec.
lua-rt.exe: auto_qos.lua:14: bad argument #2 to 'format' (string expected, got nil)
stack traceback:
        [C]: in function 'format'
        auto_qos.lua:14: in function 'exec_ping'
        auto_qos.lua:67: in main chunk
        [C]: ?
    

この例の実行結果では、auto_qos.lua の 14 行目で文法エラーが検出されています。

スクリプトの実行中に強制終了させる場合は、CTRL + C を入力するか、コマンドプロンプト画面を閉じてください。

環境変数

ルーターの設定に set コマンドを使用した環境変数が定義されており、その変数を os.getenv 関数から読み込んでいるスクリプトを lua-rt.exe で動作させる場合、 lua-rt.exe の起動前にルーターに設定した環境変数を Windows にも設定しておく必要があります。Windows の環境変数を設定するには、コマンドプロンプト画面で下記のように set コマンドを実行します。

C:\Lua>set GATEWAY=192.168.100.10
    

環境変数を削除するには、下記のように値を指定せずに set コマンドを実行します。

C:\Lua>set GATEWAY=
    

何もパラメータを指定せずに set コマンドを実行すると、Windows に設定されている環境変数が確認できます。Lua スクリプトで使用する環境変数を設定する際に、Windows で使用中の環境変数を書き換えてしまわないように注意してください。

C:\Lua>set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\rt\Application Data
CommonProgramFiles=C:\Program Files\Common Files
	:(中略)
USERDOMAIN=RT-USER
USERNAME=rt
USERPROFILE=C:\Documents and Settings\rt
windir=C:\WINDOWS
    

ファイルパス

スクリプトの中でファイルをオープンする場合、ファイルを示すパスがルーターの外部メモリや Windows 上に存在しない場所を指しているとエラーになります。また、PWD を使用した相対パスも使用することはできません。

fdw, err = io.open("sd1:/output.txt", "ab")	-- エラーになる
    

この場合、下記のように Windows 上に存在する場所を指定するように変更してください。

fdw, err = io.open("C:\output.txt", "ab")
    

←前 目次
次→