- リンクを取得
- ×
- メール
- 他のアプリ
- リンクを取得
- ×
- メール
- 他のアプリ
こんにちはドルフィンシステム福島です。
UHD付属のツールでuhd_usrp_probeがあります。
これは指定したUSRPのデバイス情報を参照するツールで、プロダクト名、バージョン番号、搭載しているドーターボード名などが取得できます。
引数無しで実行すると以下の様に情報をまとめた形で表示してくれます。
プロパティツリーを表示する
uhd_usrp_probeで表示される各種情報はプロパティツリー内に構造的に格納されています。
プロパティツリーは以下のコマンドで取得できます。
$ uhd_usrp_probe --tree
/
/mboards
/mboards/0
/mboards/0/fw_version
/mboards/0/eeprom
/mboards/0/link_max_rate
/mboards/0/fpga_version
/mboards/0/sensors
/mboards/0/sensors/gps_gpgga
/mboards/0/sensors/gps_gprmc
/mboards/0/sensors/gps_time
/mboards/0/sensors/gps_locked
/mboards/0/sensors/gps_servo
/mboards/0/sensors/ref_locked
/mboards/0/name
/mboards/0/codename
~後略~
ファームウェアのバージョンは、
/mboard/0/fw_version
に格納されていることが推測できます。
デバイス情報を取得する
取得する情報の型によって、引数を変えて実行します。
文字列情報なら、
uhd_usrp_probe.exe --args="type=b200" --string /mboards/0/fw_version
のように実行します。
文字列で取得すべきなのか、double取得すべきなのかは分かりません。プロパティ値の型情報はありませんので、実行して試してエラーが返ってこなければ、成功です。(確定したければソースコードを見る)
以下の様エラーが表示されたら型が違っています。
Error: TypeError: Property /mboards/0/link_max_rate exists, but was accessed with wrong type
型を推測する
以下の様にsensors以下の値は、--sensorで実行します。
/mboards/0/dboards/A/rx_frontends/A/sensors
/mboards/0/dboards/A/rx_frontends/A/sensors/temp
/mboards/0/dboards/A/rx_frontends/A/sensors/rssi
/mboards/0/dboards/A/rx_frontends/A/sensors/lo_locked
以下の様にrangeが含まれている場合は、--rangeで実行します。
ちなみに以下の/freqは親ノードで、値は以下のrangeとvalueに格納されています。
/mboards/0/dboards/A/tx_frontends/A/freq
/mboards/0/dboards/A/tx_frontends/A/freq/range
/mboards/0/dboards/A/tx_frontends/A/freq/value
uhd_usrp_probe.exe --double /mboards/0/dboards/A/tx_frontends/A/freq
は値が格納されておらず取得できないので、
uhd_usrp_probe.exe --range /mboards/0/dboards/A/tx_frontends/A/freq/range
uhd_usrp_probe.exe --double /mboards/0/dboards/A/tx_frontends/A/freq/value
のように取得します。
文字列情報の場合の実行例
uhd_usrp_probe.exe --args="type=b200" --string /mboards/0/fw_version~中略~
8.0
uhd_usrp_probe.exe --args="type=b200" --string /mboards/0/dboards/A/rx_frontends/A/name~中略~
FE-RX1
doubleの場合の実行例
uhd_usrp_probe.exe --args="type=b200" --double /mboards/0/dboards/A/rx_frontends/A/freq/value~中略~
1e+08
sensorの場合の実行例
uhd_usrp_probe.exe --args="type=b200" --sensors /mboards/0/dboards/A/rx_frontends/A/sensors/temp~中略~
46.608187
rangeの場合(範囲のある値)の実行例
uhd_usrp_probe.exe --args="type=b200" --range /mboards/0/dboards/A/rx_frontends/A/freq/range~中略~
50000000.0:0.0:6000000000.0
まとめ
- USRPのデバイス情報は、プロパティツリーに格納されている。
- プロパティツリーはuhd_usrp_probeで読み込みが出来る。
- 読み込む値の型に応じた引数を指定する必要がある。
- 読み込む値の型は、不明。試しに実行して取得できるか試す。
次回はC++プログラムからプロパティツリーにアクセスする方法を紹介します。
以上、ドルフィンシステム福島でした。
- リンクを取得
- ×
- メール
- 他のアプリ
コメント
コメントを投稿