NI USRP のサンプルを紐解く (7) ~ niUSRP EX Filter Devices on System.vi

こんにちはドルフィンシステムの笹生です。

今回は「niUSRP EX Filter Devices on System.vi」です。

サンプルプログラムの開き方は第一回のブログを参照してください。

niUSRP EX Filter Devices on System.vi


サンプルのフォルダを開くと以下のようにずらずらっと並んでおります


名前順にソートされて2番目のサンプルが「niUSRP EX Filter Devices on System.vi」です。

このサンプルでは、システム (PC) に接続された全ての USRP を見つけて、その情報を表示します。また、予めわかっている情報でフィルタして、該当する USRP を表示します。(送受信などは行わないサンプルです)

フロントパネルはこのようになっています。


左側には

[Address]

[Serial Numbers]

[Models]

という文字列の配列を入力するところがあります。

これは実行したときにフィルタになる情報です。

何も記述しなければすべての USRP を表示します。


右側は

[Concatenated Addresses]

[niUSRP Devices]

[error out]

となっております。

実行したときに取得した情報を表示します。また、左側のフィルタがある場合には一致するデバイスの情報が表示されます。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ブロックダイアグラムはこのような感じです。


ここで使用している USRP の関数は左下の [niUSRP Find Devices.vi] のみです。


実行するとこの関数によって PC に接続された USRP を全て見つけます。


その情報は

[address]

[serial number]

[model]

のクラスタの配列として取得します。

このブロックダイアグラムでは、[niUSRP Find Devices.vi]で取得した情報に対してフロントパネルで記述したフィルタに合致したものだけを出力、表示しています。

実行してみる

まずはフロントパネル左側のフィルタに関する文字列は何も入力せずに実行してみます。


実行時に接続した USRP は

・USRP-2943R

・USRP-2954R

・USRP2 (Ettus Nシリーズの古いもの)

の3つです。

[Concatenated Addresses] には

[RIO1;RIO2;192.168.1.52]

と表示されました。

またその下の [niUSRP Devices] には全部の情報が配列に格納されていました。

配列 #0 には RIO1, シリアル番号,NI USRP-2943R

配列 #1 には RIO2, シリアル番号,NI USRP-2954R

配列 #2 には 192.168.1.52, シリアル番号,USRP2 r4


基本的に Address には RIOデバイスではRIOリソース名、Nシリーズなどイーサネット接続は IP アドレス、USB接続の B200などは B200などが表示されるようです。

それではフィルタリングしてみましょう。
例えば左側の [Addresses] に 「RIO2」を入力してみます。
実行すると右側の表示には RIO2 のものだけが表示されます。

今度は [Models] で「USRP2 r4」を入れて実行してみます。

実行結果は 「USRP2 r4」の物だけが表示されました。

まとめ

今回のサンプルは接続されている USRP の表示や情報の取得について実行するサンプルでした。
このサンプルのような前処理が必要なシーンを想定すると、沢山の USRP がつながった状態で、特定の USRP を取得してその後の送受信処理をさせるなどが考えられますね。
実務ではあまり使わないかもしれませんが、どんなアドレスの割り当てなのか確認するときなどには使えそうです。









0 件のコメント :

コメントを投稿