OROS社 OR30シリーズ技術サポート

NVDrive基礎講座

NVDriveとは?

NVDriveとは、ユーザが作成したアプリケーションでNVGateを制御するソフトウェアです。NVDriveはソケットサーバとして動作しているので、ソケット通信を使ってNVGateをコントロールすることができます。

ソケット通信を利用しているので、ユーザのアプリケーションはNVGateが動作しているPCでも動作しますし、他のPCから同じソフトウェアでコントロールすることも可能です。

NVDriveはどこから手に入れるのか?

NVDriveはオプションとして当社で販売しています。
NVDriveをご購入頂くと、ToolkitというCD-ROMとマニュアル3冊が添付されます。
マニュアルは以下の3冊です。

  • NVDrive
    NVD_Command、NVD_Matlabのベースになるコマンド群です。

    この講座ではNVDriveを中心に説明します。
     
  • NVD_Command
    NVDriveコマンドをラッピングしてDLL化しました。

    Socket通信部分を隠蔽しているので、Sokcketについての知識を必要としません。また、NVGateから戻されるバイナリデータ処理を行います。

    但し、使用するためにはNVDriveのコマンドも習得する必要があります。
     
  • NVD_Matlab
    NVDriveコマンドをラッピングしてMatlabからコールすることができます。

    使用するためにはNVDriveのコマンドも習得する必要があります。

簡単な実行例

Windowsに標準でインストールされるハイパーターミナルを使って簡単にNVDriveの動作を確認することができます。

【準備】

NVGateを起動します。FFTなど何か適当な解析を設定しておいてください。
また、スタート&ストップで解析が実行されることを確認してください。

【設定】

ハイパーターミナルを起動します。

”スタート/プログラム/アクセサリ/ハイパーターミナル”

起動すると以下のダイアログが表示されます。
適当な名前を指定して、”OK”ボタンをクリックしてください。

次に通信設定を行います。
最初に接続方法を”TCP/IP(Winsock)”に設定します。
そして、ポート番号3000に設定してください。

ホストアドレスはNVGateがインストールされているPCのIPアドレスを指定します。同一PCで通信を行う場合、127.0.0.1と指定しても構いません。

設定したら”OK”ボタンをクリックしてください。

最後に詳細設定を行います。メニュー”ファイル/プロパティ”を選択して、表示されたダイアログで”設定”タブを表示してください。

下図のようにチェックしてください。

以上で設定は終了です。

【操作】

例えば、測定を開始するコマンドを送信します。”Run”と入力して”Enter”ボタンをクリックするとNVGateの測定が開始されます。

測定を終了するためには”Stop”コマンドを発行してください。

0000000000はエラーがないことを示しています。

NVDriveコマンドの戻り値

NVDriveコマンドを送信すると、ヘッダ部とデータ部から構成される応答があります。

  • ヘッダ
  • データ

NVDriveコマンドによってデータ部が存在しない場合があります。

ヘッダ部は10文字で構成され、以下のように扱います。

 0  0    0  0  0  0  0  0  0  0
A B C D

最初の1文字目(Aの部分)は、結果を示します。B,C,D部分は、Aの結果により解釈が異なります。

0
 の場合
Ok。コマンドはエラーなしで完了したことを示します。

以降の9文字は続くデータのサイズを示します。

ハイパーターミナル上で”Run”と入力したら、”0000000000”とNVDriveから応答がありました。
この場合、NVDriveコマンドは正常に実行されたことを示します。B,C,D部分は”000000000”ですので、データ部にデータは存在しないことを示しています。

1,2,4の場合

文法エラー。

以降の9文字はエラーコードを示します。

001 001 xxx 一般的な文法エラー。XXX=エラー位置
002 000 オプションパラメータの1つに対してランクが指定されているが、続くオプションパラメータに対して指定されていない。
003 xxx 予測しない終端文字。XXX=エラー位置。(行の終わり)

エラー。アクション可能/不可能。

以降の9文字はエラーコードを示します。

002 001 000 コマンド名を認識できません
002 xxx オプションパラメータが複数回割り当てられています。
XXX=パラメータのランク
003 000 コマンドは定数を受け付けません。

実行エラー。

以降の9文字はエラーコードを示します。

003 001 xxx 規定パラメータ数が不十分です。
XXX=期待するパラメータの(最小)数
002 xxx パラメータが多過ぎます。
XXX=パラメータの最大数。
003 xxx オプションパラメータのランクが適切ではありません。
XXX=オプションパラメータの最大数。

例えば、”RunS”のように間違ったコマンドを入力した場合、 ”1002001000”という応答になります。これは最初の1文字目(A部分)から文法エラーであることがわかります。B-C-Dが 002-001-000なので、”コマンドを認識できない”という応答があったことを意味します。

アナライザ設定ブラウザの設定値を変更する

例えば、”FFT1/平均/サイズ”を変更したいとします。

しかし、直接このパラメータを変更するコマンドは存在しません。その代わりに汎用のコマンド”SetSettingValue”を利用します。

SetSettingValueは以下の書式で設定します。

SetSettingValue <Module num> <Sub-module num> <Setting num> <Value>

ここで、モジュール番号、サブモジュール番号、設定番号などをどのように設定すればよいのかが問題になりますが、これらの番号は簡単に取得することができます。アナライザ設定ブラウザの設定を変更したいパラメータの上で”SHIFT”キーを押しながら、右クリックしてください。

右クリックすると、コンテキストメニューに”IDN”という新しいメニューが追加されます。ここで表示されている3組の値がモジュール番号、サブモジュール番号、設定番号に相当します。

”FFT1/平均/サイズ”を変更する場合には、以下のコマンドを発行してください。

SetSettingValue 10 361 81 16

コマンドを実行したら、アナライザ設定ブラウザのパラメータを再度確認してください。エラーが無ければ、値が変更されているはずです。

アナライザ設定ブラウザの設定値を取得する

アナライザ設定ブラウザから設定パラメータを取得するためにはコマンド”GetSettingValue”を利用します。使用方法は”SetSettingValue”と同じです。

GetSettingValue <Module num> <Sub-module num> <Setting num>
                       [Line num] [Column num]

ここで、コマンド引数の<> は必須のパラメータ。[ ]はオプションです。

”FFT1/平均/サイズ”を取得するためにはオプションパラメータは必要ありません。以下のようにコマンドを送信してください。

GetSettingValue 10 361 81

この結果は以下のように返されます。

この結果も最初の1文字を最初に確認します。

  1. 最初の文字列は”0”ですので、コマンドを正しく処理されました。
     
  2. 残る9文字からデータ部のバイト数を取得します。
    11バイト
     
  3. データ部はバイナリで記述されているので分かりにくいですが、以下に概要を示します。

    データは以下のように11バイトで返されます。
     1  2  3  4  5  6  7  8  9  10  11
    S c a l a r \0 Float


    最初に文字列が記述されます。この文字列がScalarの場合、その後にFloat型でパラメータが記述されます。