4
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?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-08-08

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

#前提知識

[Theta V の Client Mode設定を間違えてしまってハマった話]
(https://qiita.com/watakandhi/items/5e287823e007b3e369dd)

[C#でUSB接続したTHETA Sを操作できるライブラリを作成してみた]
(https://qiita.com/soundkonchan/items/d392794d57dc849720f3)

[Github:WpdMtp]
(https://github.com/kon0524/WpdMtp)

先人に感謝。

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

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

[THETA公式:0x99A5 SetAccessPoint]
(https://developers.theta360.com/ja/docs/v2/usb_reference/operation/set_access_point.html)
上記を読んでも意味がわからなかったので、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にも備えているからこんな形になっている?

4
0
4

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
4
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?