- 追加された行はこの色です。
- 削除された行はこの色です。
[[ANT]]
* BCA_Libとは? [#h6e6376b]
"BCA_Lib"は、BC-ANT-USBを使用するためのライブラリです。ANTデバイスの通信を簡単に行うことができます。~
ANTについての詳細は、こちらのページをご覧ください。また、BC-ANT-USBの詳細はこちらをご覧下さい。
** 機能 [#k242e13f]
主な機能は以下の通りです。
-ANTデバイスオープン/クローズ
-データ/イベント受信
-データ送信
-ペアリング処理
-送信/受信データは8バイト
APIは
-コールバックI/F
-C++クラスI/F~
があり、どちらかを使用して利用することができます。
*ファイル [#h2d128a1]
-AntCallbackInterface.h : コールバックI/F ヘッダファイル
-AntDevice.h : C++クラスI/F ヘッダファイル
-BCA_LIB.dll : ライブラリ本体
-BCA_LIB.lib : インポートライブラリ
-bc_abstruct.dll : 弊社提供のサポートライブラリ
-driver : BC-ANT-USBドライバ
*定義 [#o10b9ecd]
-チャンネルタイプ(channel type):~
送信(MASTER),受信(SLAVE)を指定します。
-チャンネルNo(channel no):~
ANTデバイスでは8つのチャンネル(0〜7)が使用できます。
-共有チャンネル(shared channl):~
共有チャンネルとして使用の有無(0/1)~
詳細は後述の「共有チャンネル」を参照して下さい。
-デバイスNo(device no):~
各ANTデバイス固有の値です(シリアル番号など)。0はワイルドカードとして使用しますが、送信(MASTER)では不可。
-デバイスタイプ(device type):~
デバイスのタイプを示しています。1〜127の値が設定できます。0はワイルドカードとして使用できますが、送信(MASTER)では不可。
-トランスミッションタイプ(transmission type):~
デバイスの通信特性を示しています。1〜255の値が設定できます。0はワイルドカードとして使用できますが、送信(MASTER)では不可。
-周波数(frequency):~
2.4Ghz帯を使用します。~
APIで指定するのは 2400 + 指定する値(HZ)です
-送受信間隔(channel period):~
データの送信/受信間隔 0.5Hz〜32768Hz
* 通信について [#g89d807e]
-送信側と受信側でチャンネルID(デバイスNo、デバイスタイプ、トランスミッションタイプ)、周波数が一致しない限り通信を確立することができません(チャンネルIDはワイルドカードを指定している場合を除く)。
-ワイルドカードを指定している場合、受信チャンネルは最初に受信したデバイスのデータのみ受信します。~
>
(例)~
''[送信側]''~
チャンネルNo:0~
チャンネルタイプ:0 (MASTER)~
共有チャンネル:0~
デバイスNo:33~
デバイスタイプ:1~
トランスミッションタイプ:1~
周波数:66 (2466Mhz)~
送受信間隔:4Hz~
~
コールバックI/Fを使用したサンプルコード~
main() {
// ANTデバイスのオープン
dev = BCA_OpenDevice(0);
// ANTデバイスの初期化
res = BCA_Init(dev);
// 送信コールバック関数の登録
BCA_RegisterSendFunc(dev, SendFunc, NULL);
// チャンネルのオープン
res = BCA_OpenChannel(dev, // device context
0, // channel no(0)
BCA_CHANNEL_TYPE_MASTER, // channel type(Master)
BCA_CHANNEL_NOSHARED, // shared channel
33, // device no
1, // device type
1, // trans typs
66, // freq 2466Hz = 2400 + 66
4); // hz
//
// 送信中...
//
// チャンネルのクローズ
BCA_CloseChannel(dev, 0);
// デバイスのクローズ
BCA_CloseDevice(dev);
}
/////////////////////////////////////////////////////////////////
// 送信コールバック関数
/////////////////////////////////////////////////////////////////
void SendFunc(void* cookie, int channel, void* cookie)
{
static unsigned char val = 0;
unsigned char dat[8];
memset(dat, val,8);
val++;
// 送信処理
// データは8バイト固定
BCA_SendData(dev, channel, dat, 8);
}
>
''[受信側]''~
チャンネルNo:0~
チャンネルタイプ:1 (SLAVE)~
共有チャンネル:0~
デバイスNo:0(ワイルドカード)~
デバイスタイプ:0(ワイルドカード)~
トランスミッションタイプ:0(ワイルドカード)~
周波数:66 (2466Mhz)~
送受信間隔:4Hz~
~
サンプルコード~
main() {
// ANTデバイスのオープン
dev = BCA_OpenDevice();
// ANTデバイスの初期化
res = BCA_Init(dev);
// 受信コールバック関数の登録
BCA_RegisterReceiveFunc(dev,ReceiveFunc, NULL);
// チャンネルのオープン
res = BCA_OpenChannel(dev,
0, // channel
BCA_CHANNEL_TYPE_SLAVE, // slave
BCA_CHANNEL_NOSHARED, // shared channel
0, // device no
0, // device type
0, // tarans type
66, // freq
4); // Hz
//
// 受信中...
//
// チャンネルのクローズ
BCA_CloseChannel(dev, 0);
// デバイスのクローズ
BCA_CloseDevice(dev);
}
/////////////////////////////////////////////////////////////////
// 受信コールバック関数
/////////////////////////////////////////////////////////////////
void ReceiveFunc(void* cookie, int channel, unsigned char evnt, void* data, unsigned int length, void* cookie)
{
unsigned char* dat = (unsigned char*)data;
printf("DATA[%x][%d][%02x][%02x][%02x][%02x][%02x][%02x][%02x][%02x]\n",
evnt,
channel,
dat[0],
dat[1],
dat[2],
dat[3],
dat[4],
dat[5],
dat[6],
dat[7]);
}
* ペアリングについて [#j04d4a21]
-ペアリングは特定のデバイスとの通信を確立する為の手段です。~
>
(例)~
''[送信側1]''~
チャンネルNo:0~
チャンネルタイプ:0 (MASTER)~
デバイスNo:1234~
周波数:66 (2466Mhz)~
送受信間隔:4Hz~
~
''[送信側2]''~
チャンネルNo:0~
チャンネルタイプ:0 (MASTER)~
デバイスNo:5678~
周波数:66 (2466Mhz)~
送受信間隔:4Hz~
~
''[受信側]''~
チャンネルNo:0~
チャンネルタイプ:1 (SLAVE)~
デバイスNo:0~
周波数:66 (2466Mhz)~
送受信間隔:4Hz~