こんにちはドルフィンシステムの笹生です。
前回までは本当にシンプルな物、最初に見たほうがいいものを紹介しました。
今回から名称順に見ていこうかと思います。今回は「niUSRP EX Command Delay.vi」です。
サンプルプログラムの開き方は第一回のブログを参照してください。
niUSRP EX Command Delay.vi
サンプルのフォルダを開くと以下のようにずらずらっと並んでおります
名前順にソートされている場合一番上にくるサンプルが「niUSRP EX Command Delay.vi」です。
名称からは
「送信なの?受信なの?」
「Command Delay ってことは遅延に関係したコマンドってこと?」
とさっぱりわかりません。
検索しても特に出てきません。
いったい何をするのか、探っていきましょう。
フロントパネルを見てみる
サンプルを開くとフロントパネルが表示されます。
基本設定は、「niUSRP EX Rx Continuous Async.vi」ベースのように見えます。
受信のサンプルのようです。(個人的には受信なら「Rx」とつけてほしかったですね。。。)
違いは真ん中の部分でしょうか、
[Reconfiguration Gain]
[Affected Channels]
と
[Time from Now]
という設定項目と
[Reconfigure ボタン]
[Clear ボタン]
があります。
設定項目を指定した時間後(Delay)に設定できる機能(Command) のようです。
[Ctrl+E] (またはメニュー [ウィンドウ] -> [ブロックダイアグラムを開く] )でブロックダイアグラムを見てみましょう。
ブロックダイアグラムを見る
ブロックダイアグラムはこのようになっています。
基本構造は以前紹介したサンプルと一緒ですね。
① 初期化の部分
② 処理のループの部分
③ 終了処理の部分
でできています。
①初期化の部分
初期化の部分では 大きく5つの処理をしています。
左から
①USRPデバイスのオープン
Device Name への設定の仕方は USRP のデバイスの種類によって異なります。
Ethernet で接続するタイプの USRP では USRP に設定してある IP アドレスを設定します。PCIe ケーブル接続の USRP では、NI MAX で認識しているデバイス名を設定します。
開くことが出来たら、セッションハンドルを出力しますのでこの後の設定などはそのセッションハンドルを基に行います。
これは第2回に紹介した「NI USRP のサンプルを紐解く (2) ~"niUSRP EX Rx Continuous Sync.vi" Async との違いは?~」にも紹介しましたが、この "Time to Receive First Sample" の時刻を大きくすると実行開始してから設定した時間だけ遅れて受信します。
②処理のループの部分
サンプルを参考に受信信号に信号処理させるときはこの関数の出力を使うことになります。
この形式は 2次元配列の複素数ということで、複数チャネル数分の受信をしてそのうちの 2ch 分を IQ グラフに表示しています。
②リコンフィグ(Command Delay のメイン)
ここではケースストラクチャを使って、 [Reconfigure ボタン]が押されたときに実行される関数です。
まず 「niUSRP Set Command Time.vi」 関数でわざとすぐに設定をするのではなく指定した時間後に設定を有効にする設定をします。
その後に設定したい内容をプロパティノードで指定しています。
(と理解しました。。。)
(と理解しました)
0 件のコメント :
コメントを投稿