Socket Debuggerを使ってみる! ポート:1! [NETWORK]
SocketDebugger
こことか、 https://www.udom.co.jp/sdg/
こことか、 http://sdg.ex-group.jp/lua.html
をまず見てね!
ネットワークデバイスのデバックで最近利用を始めたSocketDebugger、無償版と有償版があります。
有償版に比較して無償版ではいくつかの機能が制限されますが、それでもとても有用なツールだと感じています。
特に、標準で備わっている機能だけでもデータの送受信を自動的に行うなどは容易に設定してできますが、Luaスクリプトを組むことでより詳細な動きを制御できます。
無償版は基本的な設定項目を保存することができませんが、Luaスクリプト自体はユーザーがエディタで作成し、保存、読み出しができますので、なるべくLuaスクリプトで処理をした方が同じようなデバックを何度も行うなら楽だと思います。
Lua?
ウイキペディア https://ja.wikipedia.org/wiki/Lua
参考にしているサイト
https://qiita.com/rohinomiya/items/abeb1d69c640a27d97c5
https://qiita.com/dwarfJP/items/e033728f5cbecbabe11f
http://amlaid.air-nifty.com/blog/2015/10/serial-debugger.html
https://qiita.com/satorimon/items/d65872659f7d6dc453fd
SocketDebuggerは2つのポート(ポート1とポート2)が同時に操作できますんで、わざわざターゲットを用意しなくてもSocketDebuggerだけでお試しやスクリプトの実行を行うことができます。
以下例ではポート1をTCPのエコーサーバー、ポート2をTCPのユーザークライアントだとします。
ポート1の通信設定->接続の項目:TCPサーバー、IPアドレス127.0.0.1は自分自身を指定、ポート番号を1024で起動します。
ポート2の通信設定->接続の項目:TCPクライアント、IPアドレス127.0.0.1は自分自身を指定、接続先ポート番号を1024で起動します。localポート番号を0にしておけば、適宜接続の度に適当なポート番号を割り当てるのでしょう。
ポート1の通信設定->動作の項目:5000ms以内にデータの受信が無い時は切断します。また、受信時動作は受信データをそのまま返します。
ポート2の通信設定->動作の項目:スクリプトで制御を行います。
スクリプト2のタブを開けばエディタが開き、スクリプトを編集できます。
標準の内容はそれぞれ発生したイベントに対する動作となっています。コメントはこちらで付けました。
今回はポート2の送信ボタンが押された時の動作、function OnSendPush()を使う訳ですが、送信データエディタ上の内容をそのまま送信するならこのままで大丈夫です。
※送信データエディタ上に何もデータが無ければ、送信動作は行われません。
エディタ上ではバイナリーデータですが、テキスト入力機能を使えばテキストを扱えます。
これで準備が整いました。まずポート1のTCPサーバーを通信開始ボタンをクリックして起動します。画面にSocket処理開始と表示されている筈です。IDが1なのはポート1を示しています。
ポート2のユーザーTCPクライアントを通信開始ボタンをクリックして起動します。画面上にID:2のイベントが複数表示されます。何もしなければ5秒後に向こうから切断されてしまいます。
もう一度ポート2の通信開始ボタンで起動し、そのボタンの右隣のデータ送信ボタンをクリックしてみます。
左上の画面で一連の送受信の様子や接続、切断処理が判ります。まずはこんな具合につこうてみて下さい。
成功しているようです。
こことか、 https://www.udom.co.jp/sdg/
こことか、 http://sdg.ex-group.jp/lua.html
をまず見てね!
ネットワークデバイスのデバックで最近利用を始めたSocketDebugger、無償版と有償版があります。
有償版に比較して無償版ではいくつかの機能が制限されますが、それでもとても有用なツールだと感じています。
特に、標準で備わっている機能だけでもデータの送受信を自動的に行うなどは容易に設定してできますが、Luaスクリプトを組むことでより詳細な動きを制御できます。
無償版は基本的な設定項目を保存することができませんが、Luaスクリプト自体はユーザーがエディタで作成し、保存、読み出しができますので、なるべくLuaスクリプトで処理をした方が同じようなデバックを何度も行うなら楽だと思います。
Lua?
ウイキペディア https://ja.wikipedia.org/wiki/Lua
参考にしているサイト
https://qiita.com/rohinomiya/items/abeb1d69c640a27d97c5
https://qiita.com/dwarfJP/items/e033728f5cbecbabe11f
http://amlaid.air-nifty.com/blog/2015/10/serial-debugger.html
https://qiita.com/satorimon/items/d65872659f7d6dc453fd
SocketDebuggerは2つのポート(ポート1とポート2)が同時に操作できますんで、わざわざターゲットを用意しなくてもSocketDebuggerだけでお試しやスクリプトの実行を行うことができます。
以下例ではポート1をTCPのエコーサーバー、ポート2をTCPのユーザークライアントだとします。
ポート1の通信設定->接続の項目:TCPサーバー、IPアドレス127.0.0.1は自分自身を指定、ポート番号を1024で起動します。
ポート2の通信設定->接続の項目:TCPクライアント、IPアドレス127.0.0.1は自分自身を指定、接続先ポート番号を1024で起動します。localポート番号を0にしておけば、適宜接続の度に適当なポート番号を割り当てるのでしょう。
ポート1の通信設定->動作の項目:5000ms以内にデータの受信が無い時は切断します。また、受信時動作は受信データをそのまま返します。
ポート2の通信設定->動作の項目:スクリプトで制御を行います。
スクリプト2のタブを開けばエディタが開き、スクリプトを編集できます。
標準の内容はそれぞれ発生したイベントに対する動作となっています。コメントはこちらで付けました。
--------------------------------------------- -- 接続完了通知 --------------------------------------------- function OnConnected() -- 相手先と接続すると呼ばれるハンドラ Logput(1,'OnConnected') -- 詳細ログデータ画面にメッセージを表示 return 0 end --------------------------------------------- -- 送信ボタン押下 --------------------------------------------- function OnSendPush() -- 送信ボタンをクリックすると呼ばれるハンドラ Logput(1,'OnSendPush') a = GetEditorData() -- 送信データエディタ上の内容を変数に代入 SendData(a) -- 変数の内容を送信 return 0 end --------------------------------------------- -- タイマー通知 --------------------------------------------- function OnTimer(id) -- タイマーで設定した時間に呼ばれるハンドラ Logput(1,'OnTimer') return 0 end --------------------------------------------- -- 受信通知 --------------------------------------------- function OnReceive(recv) -- 相手から受信した時に呼ばれるハンドラ、引数のテーブル(recv)に受信データが格納されている Logput(1,'OnReceive') return 0 end --------------------------------------------- -- 切断通知 --------------------------------------------- function OnDisConnected() -- 切断された時に呼ばれるハンドラ Logput(1,'OnDisConnected') return 0 end
今回はポート2の送信ボタンが押された時の動作、function OnSendPush()を使う訳ですが、送信データエディタ上の内容をそのまま送信するならこのままで大丈夫です。
※送信データエディタ上に何もデータが無ければ、送信動作は行われません。
エディタ上ではバイナリーデータですが、テキスト入力機能を使えばテキストを扱えます。
これで準備が整いました。まずポート1のTCPサーバーを通信開始ボタンをクリックして起動します。画面にSocket処理開始と表示されている筈です。IDが1なのはポート1を示しています。
ポート2のユーザーTCPクライアントを通信開始ボタンをクリックして起動します。画面上にID:2のイベントが複数表示されます。何もしなければ5秒後に向こうから切断されてしまいます。
もう一度ポート2の通信開始ボタンで起動し、そのボタンの右隣のデータ送信ボタンをクリックしてみます。
左上の画面で一連の送受信の様子や接続、切断処理が判ります。まずはこんな具合につこうてみて下さい。
成功しているようです。
M5Stick ミニ開発キットESP32 1.3'OLEDオプションのブザーIRトランスミッタMpu9250
- 出版社/メーカー: M5Stack
- メディア:
2019-07-04 09:34
nice!(0)
コメント(0)
コメント 0