0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SocketDebuggerから周期的にデータを送信するスクリプト

Last updated at Posted at 2024-10-10

やりたいこと

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。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?