ANT/BCA_Lib
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
]
開始行:
[[ANT]]
* BCA_Libとは? [#h6e6376b]
"BCA_Lib"は、BC-ANT-USBを使用するためのライブラリです。AN...
ANTについての詳細は、[[ANT/ANTの基礎]]をご覧ください。ま...
"BCA_Lib"の詳しい説明は、[[こちら>http://labs.beatcraft.c...
~
''注意''!~
BCA_LibはBC-ANT-USBなどのANTデバイス用です。ANT+デバイス...
** 機能 [#k242e13f]
主な機能は以下の通りです。
-ANTデバイスオープン/クローズ
-データ/イベント受信
-データ送信
-ペアリング処理
-送信/受信データは8バイト
APIは
-[[コールバックI/F>http://labs.beatcraft.com/ja/BCA_Lib/h...
-[[C++クラスI/F>http://labs.beatcraft.com/ja/BCA_Lib/html...
があり、どちらかを使用して利用することができます。
*ファイル [#h2d128a1]
ライブラリを使うには、以下の5つのファイルとBC-ANT-USB用の...
-&ref(BCANT_Driver.zip);:BC-ANT-USB用のドライバ
-[[AntCallbackInterface.h>http://labs.beatcraft.com/ja/BC...
-[[AntDevice.h>http://labs.beatcraft.com/ja/BCA_Lib/html/...
-BCA_Lib.dll : ライブラリ本体
-BCA_Lib.lib : インポートライブラリ
-bc_abstract.dll : ビート・クラフト社製のサポートライブラリ
~
-&ref(BCA_Lib.zip);:HTMLドキュメントのBCA_Libの詳細、BC-...
-- bin:上記のbc_abstract.dll、BCA_Lib.dll、BCA_Lib.lib
--driver: BC-ANT-USBドライバ
--html:BCA_Libの詳細が書かれたHTMLフォーマットのドキュメ...
--include:ANTCallbackInterface.h、AntDevice.h、BCA_Lib.h
--python_sample:Python用の送信、受信、ペアリング(受信)...
--sample:C++用の送信、受信、ペアリング(受信)用のサンプル
*定義 [#o10b9ecd]
-チャンネルタイプ(channel type):~
送信(MASTER),受信(SLAVE)を指定します。
-チャンネルNo(channel no):~
ANTデバイスでは8つのチャンネル(0〜7)が使用できます。
-共有チャンネル(shared channl):~
共有チャンネルとして使用の有無(0/1)~
詳細は後述の「共有チャンネル」を参照して下さい。
-デバイスNo(device no):~
各ANTデバイス固有の値です(シリアル番号など)。0はワイルド...
-デバイスタイプ(device type):~
デバイスのタイプを示しています。1〜127の値が設定できます...
-トランスミッションタイプ(transmission type):~
デバイスの通信特性を示しています。1〜255の値が設定できま...
-周波数(frequency):~
2.4Ghz帯を使用します。~
APIで指定するのは 2400 + 指定する値(HZ)です
-送受信間隔(channel period):~
データの送信/受信間隔 0.5Hz〜32768Hz
* 通信について [#g89d807e]
-送信側と受信側でチャンネルID(デバイスNo、デバイスタイプ...
-ワイルドカードを指定している場合、受信チャンネルは最初に...
**設定例 [#j225b16f]
>
''[送信側]''~
チャンネル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, ...
0, ...
BCA_CHANNEL_TYPE_MASTER, ...
BCA_CHANNEL_NOSHARED, ...
33, ...
1, ...
1, ...
66, ...
4); ...
//
// 送信中...
//
// チャンネルのクローズ
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, ...
BCA_CHANNEL_TYPE_SLAVE, ...
BCA_CHANNEL_NOSHARED, ...
0, ...
0, ...
0, ...
66, ...
4); ...
//
// 受信中...
//
// チャンネルのクローズ
BCA_CloseChannel(dev, 0);
// デバイスのクローズ
BCA_CloseDevice(dev);
}
////////////////////////////////////////////////////////...
// 受信コールバック関数
////////////////////////////////////////////////////////...
void ReceiveFunc(void* cookie, int channel, unsigned cha...
{
unsigned char* dat = (unsigned char*)data;
printf("DATA[%x][%d][%02x][%02x][%02x][%02x][%02...
evnt,
channel,
dat[0],
dat[1],
dat[2],
dat[3],
dat[4],
dat[5],
dat[6],
dat[7]);
}
* ペアリングについて [#j04d4a21]
-ペアリングは特定のデバイスとの通信を確立する為の手段です...
**設定例 [#s1477024]
>
''[送信側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~
~
サンプルコード~
main() {
// ANTデバイスのオープン
dev = BCA_OpenDevice(0);
// ANTデバイスの初期化
res = BCA_Init(dev);
// ペアリングコールバック関数の登録
BCA_RegisterPairingFunc(dev,PairingFunc, NULL);
// 受信コールバック関数の登録
BCA_RegisterReceiveFunc(dev,ReceiveFunc, NULL);
// ペアリング処理開始
res = BCA_StartPairing(dev,
66, // freq
4, // Hz
10);// ペアリングの検索時間(秒)
//
// 処理中...
//
// チャンネルのクローズ
BCA_CloseChannel(dev, 0);
// デバイスのクローズ
BCA_CloseDevice(dev);
}
////////////////////////////////////////////////////////...
// ペアリング コールバック関数
////////////////////////////////////////////////////////...
void PairingFunc(void* cookie, int* device, unsigned cha...
{
if (count <= 0) {
// デバイスは見つからなかった
return;
}
int device_no = 0;
int device_type = 0;
int trans_type = 0;
int res = 0;
// 最初のデバイスに接続する
// デバイス情報を取得
res = BCA_GetPairingDeviceInfo(dev, 0, &device_no, &...
// チャンネルのオープン
res = BCA_OpenChannel(dev,
0, ...
BCA_CHANNEL_TYPE_SLAVE, ...
BCA_CHANNEL_NOSHARED, ...
device_no, ...
device_type, ...
trans_type, ...
66, ...
4); ...
}
ペアリング処理([[BCA_StartPairing()>http://labs.beatcraft...
関数には見つかったデバイスのチャンネル情報(デバイスID)が...
アプリケーションのUIで接続するデバイスを選択し、チャンネ...
~
8チャンネルを使用してデバイスの検索を行いますので、検出で...
**リファレンス [#tce5cb5a]
-[[関数リファレンス (C++ I/F)>http://labs.beatcraft.com/j...
-[[関数リファレンス (callback I/F)>http://labs.beatcraft....
* 共有チャンネル [#g18a3c34]
**共有チャンネル (shared channel) について [#rb2c111f]
ANTネットワークは通常、1対1かもしくはブロードキャストでの...
マスターが複数のスレーブと通信するにはブロードキャストを...
#ref(001.png,,CENTER,一般的なチャンネル);~
共有チャンネルはマスターのチャンネル1つで複数のスレーブと...
制限としてはスレーブ側に共有チャンネルアドレスの設定する...
#ref(002.png,,center,共有チャンネル1);~
送信例
#ref(003.png,,center,共有チャンネル2 );~
~
マスター側から共有チャンネルアドレスを含めたデータを送信...
~
スレーブ側の各Nodeは、受信開始時に自身の共有チャンネルア...
共有チャンネルアドレス通知~
#ref(004.png,,center,共有チャンネル3);~
**設定例 [#pcdc1195]
>
''Node A 設定''~
~
Channel No:0~
Channel Type:BCA_CHANNEL_TYPE_MASTER (共有チャンネルを使...
Shared:BCA_CHANNEL_SHARED(共有チャンネル)~
Device Number:33 (ノードAのシリアル番号)~
Device Type:3 (ノードAのデバイスタイプ)~
Transmission Type:3 (2バイトの共有チャンネルアドレス)~
RF Frequency:66 (使用周波数 2466Mhz)~
Period:4Hz~
~
''Node B,C,D設定''~
~
Channel No:0~
Channel Type:BCA_CHANNEL_TYPE_SLAVE (共有チャンネルを使用...
Shared:BCA_CHANNEL_SHARED(共有チャンネル)~
Device Number:33 (ノードAのシリアル番号)~
Device Type:3 (ノードAのデバイスタイプ)~
Transmission Type:3 (2バイトの共有チャンネルアドレス)~
RF Frequency:66 (使用周波数 2466Mhz)~
Period:4Hz~
スレーブ側(Node B,C,D)はチャンネルのオープンが完了したら...
以降、データを送信する際には常に先頭2バイトに共有チャンネ...
含めない場合は設定された共有チャンネルアドレスを喪失しま...
*サンプル・コード [#a6f96567]
送信、受信、ペアリング(受信用)のサンプル・コードです。C...
**C++ サンプル [#z04ca0e1]
-&ref(SendCB.zip);:送信サンプル
-&ref(RecvCB.zip);:受信サンプル
-&ref(PairingCB.zip);:ペアリング(受信)サンプル
**Python サンプル [#y89fa839]
-&ref(BCA_send.py);:送信サンプル
-&ref(BCA_recv.py);:受信サンプル
-&ref(BCA_pairing.py);:ペアリング(受信)サンプル
** 全てのファイルやBCA_Libに関するHTMLドキュメント [#t9bf...
-&ref(BCA_Lib.zip);
* 更新履歴 [#mddae802]
2012/12/04 初稿掲載~
2012/12/05 全ての必要なファイルやHTMLドキュメントが入った...
2013/01/09 リンクの追加と修正~
2013/03/01 BCA_Libをアップデートしました。
終了行:
[[ANT]]
* BCA_Libとは? [#h6e6376b]
"BCA_Lib"は、BC-ANT-USBを使用するためのライブラリです。AN...
ANTについての詳細は、[[ANT/ANTの基礎]]をご覧ください。ま...
"BCA_Lib"の詳しい説明は、[[こちら>http://labs.beatcraft.c...
~
''注意''!~
BCA_LibはBC-ANT-USBなどのANTデバイス用です。ANT+デバイス...
** 機能 [#k242e13f]
主な機能は以下の通りです。
-ANTデバイスオープン/クローズ
-データ/イベント受信
-データ送信
-ペアリング処理
-送信/受信データは8バイト
APIは
-[[コールバックI/F>http://labs.beatcraft.com/ja/BCA_Lib/h...
-[[C++クラスI/F>http://labs.beatcraft.com/ja/BCA_Lib/html...
があり、どちらかを使用して利用することができます。
*ファイル [#h2d128a1]
ライブラリを使うには、以下の5つのファイルとBC-ANT-USB用の...
-&ref(BCANT_Driver.zip);:BC-ANT-USB用のドライバ
-[[AntCallbackInterface.h>http://labs.beatcraft.com/ja/BC...
-[[AntDevice.h>http://labs.beatcraft.com/ja/BCA_Lib/html/...
-BCA_Lib.dll : ライブラリ本体
-BCA_Lib.lib : インポートライブラリ
-bc_abstract.dll : ビート・クラフト社製のサポートライブラリ
~
-&ref(BCA_Lib.zip);:HTMLドキュメントのBCA_Libの詳細、BC-...
-- bin:上記のbc_abstract.dll、BCA_Lib.dll、BCA_Lib.lib
--driver: BC-ANT-USBドライバ
--html:BCA_Libの詳細が書かれたHTMLフォーマットのドキュメ...
--include:ANTCallbackInterface.h、AntDevice.h、BCA_Lib.h
--python_sample:Python用の送信、受信、ペアリング(受信)...
--sample:C++用の送信、受信、ペアリング(受信)用のサンプル
*定義 [#o10b9ecd]
-チャンネルタイプ(channel type):~
送信(MASTER),受信(SLAVE)を指定します。
-チャンネルNo(channel no):~
ANTデバイスでは8つのチャンネル(0〜7)が使用できます。
-共有チャンネル(shared channl):~
共有チャンネルとして使用の有無(0/1)~
詳細は後述の「共有チャンネル」を参照して下さい。
-デバイスNo(device no):~
各ANTデバイス固有の値です(シリアル番号など)。0はワイルド...
-デバイスタイプ(device type):~
デバイスのタイプを示しています。1〜127の値が設定できます...
-トランスミッションタイプ(transmission type):~
デバイスの通信特性を示しています。1〜255の値が設定できま...
-周波数(frequency):~
2.4Ghz帯を使用します。~
APIで指定するのは 2400 + 指定する値(HZ)です
-送受信間隔(channel period):~
データの送信/受信間隔 0.5Hz〜32768Hz
* 通信について [#g89d807e]
-送信側と受信側でチャンネルID(デバイスNo、デバイスタイプ...
-ワイルドカードを指定している場合、受信チャンネルは最初に...
**設定例 [#j225b16f]
>
''[送信側]''~
チャンネル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, ...
0, ...
BCA_CHANNEL_TYPE_MASTER, ...
BCA_CHANNEL_NOSHARED, ...
33, ...
1, ...
1, ...
66, ...
4); ...
//
// 送信中...
//
// チャンネルのクローズ
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, ...
BCA_CHANNEL_TYPE_SLAVE, ...
BCA_CHANNEL_NOSHARED, ...
0, ...
0, ...
0, ...
66, ...
4); ...
//
// 受信中...
//
// チャンネルのクローズ
BCA_CloseChannel(dev, 0);
// デバイスのクローズ
BCA_CloseDevice(dev);
}
////////////////////////////////////////////////////////...
// 受信コールバック関数
////////////////////////////////////////////////////////...
void ReceiveFunc(void* cookie, int channel, unsigned cha...
{
unsigned char* dat = (unsigned char*)data;
printf("DATA[%x][%d][%02x][%02x][%02x][%02x][%02...
evnt,
channel,
dat[0],
dat[1],
dat[2],
dat[3],
dat[4],
dat[5],
dat[6],
dat[7]);
}
* ペアリングについて [#j04d4a21]
-ペアリングは特定のデバイスとの通信を確立する為の手段です...
**設定例 [#s1477024]
>
''[送信側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~
~
サンプルコード~
main() {
// ANTデバイスのオープン
dev = BCA_OpenDevice(0);
// ANTデバイスの初期化
res = BCA_Init(dev);
// ペアリングコールバック関数の登録
BCA_RegisterPairingFunc(dev,PairingFunc, NULL);
// 受信コールバック関数の登録
BCA_RegisterReceiveFunc(dev,ReceiveFunc, NULL);
// ペアリング処理開始
res = BCA_StartPairing(dev,
66, // freq
4, // Hz
10);// ペアリングの検索時間(秒)
//
// 処理中...
//
// チャンネルのクローズ
BCA_CloseChannel(dev, 0);
// デバイスのクローズ
BCA_CloseDevice(dev);
}
////////////////////////////////////////////////////////...
// ペアリング コールバック関数
////////////////////////////////////////////////////////...
void PairingFunc(void* cookie, int* device, unsigned cha...
{
if (count <= 0) {
// デバイスは見つからなかった
return;
}
int device_no = 0;
int device_type = 0;
int trans_type = 0;
int res = 0;
// 最初のデバイスに接続する
// デバイス情報を取得
res = BCA_GetPairingDeviceInfo(dev, 0, &device_no, &...
// チャンネルのオープン
res = BCA_OpenChannel(dev,
0, ...
BCA_CHANNEL_TYPE_SLAVE, ...
BCA_CHANNEL_NOSHARED, ...
device_no, ...
device_type, ...
trans_type, ...
66, ...
4); ...
}
ペアリング処理([[BCA_StartPairing()>http://labs.beatcraft...
関数には見つかったデバイスのチャンネル情報(デバイスID)が...
アプリケーションのUIで接続するデバイスを選択し、チャンネ...
~
8チャンネルを使用してデバイスの検索を行いますので、検出で...
**リファレンス [#tce5cb5a]
-[[関数リファレンス (C++ I/F)>http://labs.beatcraft.com/j...
-[[関数リファレンス (callback I/F)>http://labs.beatcraft....
* 共有チャンネル [#g18a3c34]
**共有チャンネル (shared channel) について [#rb2c111f]
ANTネットワークは通常、1対1かもしくはブロードキャストでの...
マスターが複数のスレーブと通信するにはブロードキャストを...
#ref(001.png,,CENTER,一般的なチャンネル);~
共有チャンネルはマスターのチャンネル1つで複数のスレーブと...
制限としてはスレーブ側に共有チャンネルアドレスの設定する...
#ref(002.png,,center,共有チャンネル1);~
送信例
#ref(003.png,,center,共有チャンネル2 );~
~
マスター側から共有チャンネルアドレスを含めたデータを送信...
~
スレーブ側の各Nodeは、受信開始時に自身の共有チャンネルア...
共有チャンネルアドレス通知~
#ref(004.png,,center,共有チャンネル3);~
**設定例 [#pcdc1195]
>
''Node A 設定''~
~
Channel No:0~
Channel Type:BCA_CHANNEL_TYPE_MASTER (共有チャンネルを使...
Shared:BCA_CHANNEL_SHARED(共有チャンネル)~
Device Number:33 (ノードAのシリアル番号)~
Device Type:3 (ノードAのデバイスタイプ)~
Transmission Type:3 (2バイトの共有チャンネルアドレス)~
RF Frequency:66 (使用周波数 2466Mhz)~
Period:4Hz~
~
''Node B,C,D設定''~
~
Channel No:0~
Channel Type:BCA_CHANNEL_TYPE_SLAVE (共有チャンネルを使用...
Shared:BCA_CHANNEL_SHARED(共有チャンネル)~
Device Number:33 (ノードAのシリアル番号)~
Device Type:3 (ノードAのデバイスタイプ)~
Transmission Type:3 (2バイトの共有チャンネルアドレス)~
RF Frequency:66 (使用周波数 2466Mhz)~
Period:4Hz~
スレーブ側(Node B,C,D)はチャンネルのオープンが完了したら...
以降、データを送信する際には常に先頭2バイトに共有チャンネ...
含めない場合は設定された共有チャンネルアドレスを喪失しま...
*サンプル・コード [#a6f96567]
送信、受信、ペアリング(受信用)のサンプル・コードです。C...
**C++ サンプル [#z04ca0e1]
-&ref(SendCB.zip);:送信サンプル
-&ref(RecvCB.zip);:受信サンプル
-&ref(PairingCB.zip);:ペアリング(受信)サンプル
**Python サンプル [#y89fa839]
-&ref(BCA_send.py);:送信サンプル
-&ref(BCA_recv.py);:受信サンプル
-&ref(BCA_pairing.py);:ペアリング(受信)サンプル
** 全てのファイルやBCA_Libに関するHTMLドキュメント [#t9bf...
-&ref(BCA_Lib.zip);
* 更新履歴 [#mddae802]
2012/12/04 初稿掲載~
2012/12/05 全ての必要なファイルやHTMLドキュメントが入った...
2013/01/09 リンクの追加と修正~
2013/03/01 BCA_Libをアップデートしました。
ページ名:
BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。