やりたいこと
SocketDebuggerから周期的に(定期的に)にデータを送信したい。
※わざわざ記事にする程でもないですが、
スクリプト
- 接続完了したら、周期的にデータを送信する
- 今回は周期を、3分(=30,000ミリ秒)とした
- 周期的にデータを受信すると
OnReceive()
関数が呼び出される- 引数
id
はタイマー番号(0 or 1)
- 引数
-
FileRead()
関数はファイル読み込み- 引数
recv
はテーブル -
filename
は、ファイルのフルパスを指定する - bin形式のデータは、SocketDebuggerの「送信データエディタ」などで、あらかじめ用意しておく必要がある
- 戻り値は、読み込んだデータ(※エラー時は
null
が返る)
- 引数
- 切断したら、タイマーを停止する(周期的なデータの送信を停止する)
---------------------------------------------
-- 接続完了通知
---------------------------------------------
function OnConnected()
timernumber = 0 -- 0:タイマー1指定 / 1:タイマー2指定
cycle = 30000 -- イベントを発生する周期をミリ秒で指定(※30000ミリ秒=3分)
_1time = 0 -- 0:通常タイマー(※デフォルト) / 1:ワンタイムタイマー
SetTimer(timernumber, cycle, _1time)
return 0
end
---------------------------------------------
-- タイマー通知
---------------------------------------------
function OnTimer(id)
filename = "C:\\SocketDebugger\\送信データ\\Send_01.bin"
binfile = FileRead(filename)
option = 0 -- 0:現在の制御中の接続ポートで送信する(※デフォルト) / 1:ポート1 / 2:ポート2
SendData(binfile, option)
return 0
end
---------------------------------------------
-- 切断通知
---------------------------------------------
function OnDisConnected()
timernumber = 0 -- 0:タイマー1指定 / 1:タイマー2指定
KillTimer(timernumber)
return 0
end
参考
-
SocketDebugger
- 高機能通信試験支援ツール
-
Lua 5.1 リファレンスマニュアル
- SocketDebuggerの取扱説明書(Ver. 2.00)によると、Luaのリファレンスは5.1を参照するらしい
- Wikipediaによると、Lua 5.1.4のリリースが2008年。最新は2020年のLua 5.4.0。