THETA VのIPアドレス静的設定(IPv4)


はじめに

THETA V以降ではクライアントモードで接続が可能。
しかし、通常の方法で設定するとDHCPでIPアドレスが動的に決まってしまう。
そこでIPアドレスを静的に設定する方法を記録しておく。

前提知識

Theta V の Client Mode設定を間違えてしまってハマった話

C#でUSB接続したTHETA Sを操作できるライブラリを作成してみた

Github:WpdMtp

先人に感謝。

IPアドレス(v4)の設定方法

USB接続してWpdMtpを使用して解決した。
基本はAccessPointInfoで受信したbyteを参考にして送信用byteを作成すればOK。

THETA公式:0x99A5 SetAccessPoint
上記を読んでも意味がわからなかったので、IPのbyte規約は総当たりで見つけた。
IPはsizeが4のUINT32と書いてあるが、有効なbyte配列と比較してもどう解釈するべきか不明のまま。

AccessPointInfoでIPを受けると下記のような配列になる。
byte配列:[4,0,0,0,0,0,0,0]

SetAccessPointで設定するIP部分は下記のように渡してやる。(ex 192.168.1.1)
先頭に"4"、下4つにIPv4を入れてやればOK。
byte配列:[4,0,0,0,192,168,1,1]

疑問

クライアントモード接続中にOscApiでもIP設定を試してみたが、
"Command executed is currently disabled."とエラーが出て、変更はできなかった。
おそらく、動的設定されたIPアドレスを使っている最中だからだと思う。
しかし、IPアドレス使用中に変更APIが使えないなら、どのタイミングで使えるのだろうか?
(追記)→ダイレクトモードなら、OcsApiで登録ができた。

bit配列の先頭の4はIPv4の4であり、データ定義はIPv6にも備えているからこんな形になっている?