ユーザーバッファ概要
出力データは以下の形式でユーサーバッファに格納しておきます。
上図は0、1、計2チャネルを使用した場合のユーザーバッファの設定方法を表したものです。
データ転送は、サイズが4バイトの転送パケットを最小単位に行われます。
1パケット中には、2個のDA変換データをバイナリ値で格納してください。
上図の例では1パケット中の下位2バイトに0チャネルのデータ、上位2バイトに1チャネルのデータを格納します。
2チャネルを使用する場合では、1パケット(1転送回数)=1ジェネレーティングとなります。
上図は0、1、2、計3チャネルを使用した場合のユーザーバッファへの転送方法を表したものです。
基本的には2個の変換データで1パケットを使用しますが、上図のように奇数チャネルを使用する場合、パケットの上位2バイトを空けて設定します。
3チャネルを使用する場合では、2パケット(2転送回数)=1ジェネレーティングとなります。
ユーザーバッファの設定
ユーザーバッファの設定は、AioSetAoTransferData関数で行います。
Ret = AioSetAoTransferData ( Id , DataNumber , Buffer )
DataNumberにはアプリケーションメモリの容量を、転送パケット単位で指定します。
転送パケットとはデータ転送の際の最小単位のデータサイズを表し、そのサイズは4バイトとなっています。
Bufferにはアプリケーションで確保した配列のアドレスを指定します。
配列の数は最低でもDataNumberの数だけ必要です。
例)2チャネルを使用して1000回のジェネレーティングを行う場合
1ジェネレーティングに1パケットを使用するので、1000個の配列を確保しておき、DataNumber = 1000となります。
例)3チャネルを使用して1000回のジェネレーティングを行う場合
1ジェネレーティングに2パケットを使用するので、2000個の配列を確保しておき、DataNumber = 2000となります。