カテゴリー
Arduino ECHONET Ethernet

W5500のマルチキャストの挙動に注意

Wio Terminal用Ethernet HATに使うつもりのW5500(WIZnet社製)ですが、マルチキャスト通信を行うには注意が必要ということがわかりました。

結論としては、マルチキャスト受信とユニキャスト送信が必要な場合、ソケットを2つ使う必要があるようです。

ググったところ、こちらの情報(can’t receive multicast packet and respond)にも同様のことが書かれていました。

カテゴリー
ECHONET iOS

ECHONETスキャナを作ってみる(5)

なんとかひと段落

各プロパティ値の表示を意味ある形にして、ノード一覧をソートしました。プロパティの設定は制約としてできないようにしていますが、スキャナ(Echonet機器のプロパティ値の取得)としては、それなりに使えるようになったと思います。

プログラムソースはGitHubで公開しています。

カテゴリー
ECHONET iOS

ECHONETスキャナを作ってみる(4)

先日の課題が一応解決

しばらく待たないと情報取得できない件ですが、依存ライブラリのELSwiftに1行追加したところ、すんなり情報が返ってくるようになりました。(後述の通り、依存ライブラリの修正は不要

追加したのは、ELSwift.swiftのinitialize()メソッドの最後に、自ノードインスタンスリストSの取得パケット送信(マルチキャスト)。

try ELSwift.sendOPC1( EL_Multi, [0x0e,0xf0,0x01], [0x0e,0xf0,0x01], 0x62, 0xd6, Node_details["d6"]! );

オリジナルのコードでは、

  1. インスタンス通知(0xD5のINF)

だけだったのが、

  1. インスタンス通知(0xD5のINF)
  2. 自ノードインスタンスリストS取得(0xD6のGet)

となる格好となります。

よく見たら、追加する行はELSwift.search()メソッドの内容と同じでした。

依存ライブラリをオリジナルに戻し、ELSwift.initialize()を呼び出した直後にELSwift.search()を呼び出せば同等の結果になることを確認できました。

カテゴリー
ECHONET iOS

ECHONETスキャナを作ってみる(3)

見栄えはともかく、LAN内のECHONET機器を検索、各プロパティ値を取得して表示するところまでできました。

カテゴリー
ECHONET iOS

ECHONETスキャナを作ってみる(2)

とりあえず、ビューだけ実装してみました。表示内容はハードコーディングしています。

色々と気に入らないところが多いですが、引き続きEchonet情報収集ロジックを組み込んでみようと思います。

カテゴリー
ECHONET iOS

ECHONETスキャナを作ってみる(1)

背景

  • Wi-SUN-Ethernetコンバータの作成にあたっては、PicoGWを使って動作確認をしたりしていました。同様のツールとして、SSNG for Node.jsなどがあったりします。
    • 不正なEchonet Liteパケットもを送れるので、後者の方がデバッグ用途としてはよさそうです。
    • PicoGWを操作して収集した結果は、Qiitaにも投稿しています。
  • いずれのツールもNode.js環境が前提となっていて面倒なので、もっとお手軽にスマートフォンで使いたいなというのがモチベーションです。
    • ググるとSSNG for iPhoneというツールが見つかるのですが、残念ながらAppStoreで入手不可となっています。
  • あと、個人的な事情で暇になってしまったので、スマートフォンアプリを1本作ってみたい、というのもあります。