duedueduedeu
Dependencies: XbeeApiLib mbed
Diff: main.cpp
- Revision:
- 0:ad46c53f4977
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Mar 11 19:59:29 2017 +0000 @@ -0,0 +1,48 @@ +/* +* XbeeでApi通信を行うライブラリの使用例 +* コメントは全てXbeeApiLib関係の内容 +*/ + +#include "mbed.h" +#include "XbeeApiLib.h" // XbeeApiLib のインクルード + +DigitalOut led1(LED1); + +// パケット受信時に呼ばれてほしい関数のプロトタイプ宣言 Length: データ長 *message: データ +void OnXbeeDataReceived(int Length, char *message); + + +int main() +{ + // XbeeApi 「好きな名前」(TxPin, RxPin, ボーレート, パケット受信時に呼ばれてほしい関数) + XbeeApi xbee(p13, p14, 115200, OnXbeeDataReceived); + + // 0番目の宛先アドレス + xbee.SetAddress(0, 0x0013A200, 0x40A88F02); + // 1番目の宛先アドレス + xbee.SetAddress(1, 0x0013A200, 0x40E7D43E); + // 2番目の宛先アドレス + xbee.SetAddress(2, 0x0013A200, 0x40E7D44F); + + led1 = false; + + while(true){ + /* + * XbeeApi::StartPacket(char Header) に渡す数字は XbeeApiで定められたものではなく + * 単に地上局側でデータのフォーマットを判別するためのものなので + * どの数字にどのフォーマットを当てはめるかはmainのプログラムを書く人が勝手に決めて良い + * ただし0x00は非推奨 (パケットが128バイトを超えそうになった時にエラーとして0x00が使用されるため) + */ + xbee.StartPacket(0x11); // ヘッダー0x11のパケットの準備 この数字は任意のものを書き込んでよい + xbee.Write(1); // 上で用意したパケットにint型の数値を書き込む + xbee.Write(0.5f); // 上で用意したパケットにfloat型の数値を書き込む + xbee.Write(0.5); // 上で用意したパケットにdouble型の数値を書き込む + xbee.EndPacket(); // パケットを送信 + wait(0.05); + } +} + +// パケット受信時の処理 Length: データ長 *message: データ +void OnXbeeDataReceived(int Length, char *message){ + led1 = !led1; +}