
ユーザーバッファモードにて、添付データ付きの有限サンプリングを行うサンプルです。
このサンプルプログラムは、アナログ入力機能を持ったデバイスの選定が必要です。
| サンプル仕様 | ※サンプルプログラムの初期値です。デバイスドライバの初期値と異なりますので、ご注意ください。 | 
| プログラム名 | ./ai_sampling_attached_data | 
| 変換データ転送方式 | 1(ユーザーバッファモード) | 
| 開始条件 | 0(ソフトウェア) | 
| クロック種類 | 0(内部クロック) | 
| 停止条件 | 0(指定回数) | 
| メモリタイプ | 0(メモリへの上書きなし) | 
| イベント | デバイス動作停止イベント、オーバーフローイベント、サンプリングクロック周期エラーイベント、AD変換エラーイベント | 
1.希望するプログラム名を指定し、プログラム実行させると、上記のような外観のCUI(Character 
 User Interface)メニューが表示されます。
  ソフトウェアのバージョンによっては外観が異なることがあります。
2.デバイス初期化処理
 ・[1 : AioInit]をコマンド選択すると、デバイス名を指定することができます。 
  指定デバイスの利用開始することをデバイスドライバへ通知します。
  デバイス名を指定すると、AioInitが実行され、CUIメニューが再度表示されます。
  
3.アナログ入力設定
 ・[3 : AioSetAiRangeAll]をコマンド選択すると、レンジを指定することができます。
  レンジを指定すると、AioSetAiRangeAllが実行され、CUIメニューが再度表示されます。
  利用するデバイスによっては、デバイス上のジャンパーピンで入力レンジを変更しないと設定が有効とならない場合があります。
  
 ・[4 : AioSetAiInputMethod]をコマンド選択すると、入力方式を指定することができます。
  入力方式を指定するとAioSetAiInputMethodが実行され、CUIメニューが再度表示されます。
  
4.サンプリング設定
 ・[5 : AioSetAiChannels]をコマンド選択すると、チャネル数を指定することができます。
  チャネル数を指定するとAioSetAiChannelsが実行され、CUIメニューが再度表示されます。
  なお、開始チャネル番号は0ch固定です。例えば、チャネル数 3を指定した場合、0ch~2chのデータ取得となります。
  
 ・[6 : AioSetAiSamplingClock]をコマンド選択すると、サンプリングクロック周期を指定することができます。
  希望するサンプリングクロック周期を[μsec]単位で入力します。
  サンプリングクロック周期を指定するとAioSetAiSamplingClockが実行され、CUIメニューが再度表示されます。
  指定できるサンプリングクロック周期の最小値は、利用するデバイスによって異なります。
  また、指定したチャネル数の値も考慮する必要があります。
詳細は、[用語集]サンプリング クロックエラーの項目を参照ください。
  
 ・[7 : AioSetAiScanClock]をコマンド選択すると、変換速度を指定することができます。
  希望する変換速度を[μsec]単位で入力します。
  変換速度を指定するとAioSetAiScanClockが実行され、CUIメニューが再度表示されます。
  指定できる変換速度の最小値は、利用するデバイスによって異なります。
  
 ・[8 : AioSetAiStopTimes]をコマンド選択すると、停止回数を指定することができます。
  希望するサンプリング数を入力します。
  停止回数を指定するとAioSetAiStopTimesが実行され、CUIメニューが再度表示されます。
  チャネル数設定で複数チャネルの取得を指定している場合は、停止回数で指定したデータ数が各チャネルから取得されます。
  
 ・[9 : AioSetAiAttachedData]をコマンド選択すると、添付データへ保存したいデータの指定ができます。
  アナログ入力付属情報、アナログ出力データ、デジタル入出力データ、カウンターチャネル0データ、カウンターチャネル1データの添付する/しないを指定します。
  すべての添付データに対して、する/しないの指定が完了すると、AioSetAiAttachedDataが実行され、CUIメニューが再度表示されます。
  利用するデバイスによって、指定できる添付データは異なります。
  
 ・[10 : 基本設定]をコマンド選択すると、上記「サンプル仕様」表の条件がデバイスへ設定されます。
  デバイスへの設定が完了すると、CUIメニューが再度表示されます。
  
5.ユーザーバッファ設定
 ・[11 : ユーザーバッファサイズ設定]をコマンド選択すると、ユーザバッファに格納するサンプリング回数を指定することができます。
  プログラムメモリ上にユーザーバッファを確保し、デバイスドライバへバッファメモリの場所を通知します。
  サンプリング回数を指定すると、CUIメニューが再度表示されます。
  サンプリング回数は、停止回数よりも大きい値を指定してください。
  
6.サンプリング動作
 ・[12 : サンプリング開始]をコマンド選択すると、サンプリングが開始されます。
  サンプリングが開始すると、CUIメニューが再度表示されます。
 ・[13 : AioGetAiTransferCount]をコマンド選択すると、転送位置の値が表示されます。
  転送位置の値が表示されると、CUIメニューが再度表示されます。
 ・[14 : AioGetAiStatus]をコマンド選択すると、ステータスが表示されます。
  ステータスが表示されると、CUIメニューが再度表示されます。
  
 ・[15 : サンプリング停止]をコマンド選択すると、データサンプリングが停止します。
  データサンプリングが停止すると、CUIメニューが再度表示されます。
  
 ・指定した停止回数までデータ取得が完了、もしくは、サンプリング停止すると、デバイス動作停止イベントが発生します。
  イベント処理ではFIFO内の変換データを全て取得し、テキストファイル"sampling_data.csv"へ保存し、以下のメッセージが表示されます。
  
7.終了処理
 ・[16 : AioExit]をコマンド選択すると、現デバイス利用が完了したことデバイスドライバへ通知します。
  プログラムを終了させることなく、異なるデバイス(例:AIO001など)からデータ取得ができます。
  AioExitが実行されると、CUIメニューが再度表示されます。
  
・再び、データ取得処理を行う場合は、[1 : AioInit]をコマンド選択し、新たなデバイス名を指定し、デバイス初期化処理を行ってください。
8.プログラムの終了処理
・[q : 終了]をコマンド選択すると、プログラムが終了します。