duedueduedeu

Dependencies:   XbeeApiLib mbed

Committer:
ark777
Date:
Sat Mar 11 19:59:29 2017 +0000
Revision:
0:ad46c53f4977
XbeeApi????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ark777 0:ad46c53f4977 1 /*
ark777 0:ad46c53f4977 2 * XbeeでApi通信を行うライブラリの使用例
ark777 0:ad46c53f4977 3 * コメントは全てXbeeApiLib関係の内容
ark777 0:ad46c53f4977 4 */
ark777 0:ad46c53f4977 5
ark777 0:ad46c53f4977 6 #include "mbed.h"
ark777 0:ad46c53f4977 7 #include "XbeeApiLib.h" // XbeeApiLib のインクルード
ark777 0:ad46c53f4977 8
ark777 0:ad46c53f4977 9 DigitalOut led1(LED1);
ark777 0:ad46c53f4977 10
ark777 0:ad46c53f4977 11 // パケット受信時に呼ばれてほしい関数のプロトタイプ宣言 Length: データ長 *message: データ
ark777 0:ad46c53f4977 12 void OnXbeeDataReceived(int Length, char *message);
ark777 0:ad46c53f4977 13
ark777 0:ad46c53f4977 14
ark777 0:ad46c53f4977 15 int main()
ark777 0:ad46c53f4977 16 {
ark777 0:ad46c53f4977 17 // XbeeApi 「好きな名前」(TxPin, RxPin, ボーレート, パケット受信時に呼ばれてほしい関数)
ark777 0:ad46c53f4977 18 XbeeApi xbee(p13, p14, 115200, OnXbeeDataReceived);
ark777 0:ad46c53f4977 19
ark777 0:ad46c53f4977 20 // 0番目の宛先アドレス
ark777 0:ad46c53f4977 21 xbee.SetAddress(0, 0x0013A200, 0x40A88F02);
ark777 0:ad46c53f4977 22 // 1番目の宛先アドレス
ark777 0:ad46c53f4977 23 xbee.SetAddress(1, 0x0013A200, 0x40E7D43E);
ark777 0:ad46c53f4977 24 // 2番目の宛先アドレス
ark777 0:ad46c53f4977 25 xbee.SetAddress(2, 0x0013A200, 0x40E7D44F);
ark777 0:ad46c53f4977 26
ark777 0:ad46c53f4977 27 led1 = false;
ark777 0:ad46c53f4977 28
ark777 0:ad46c53f4977 29 while(true){
ark777 0:ad46c53f4977 30 /*
ark777 0:ad46c53f4977 31 * XbeeApi::StartPacket(char Header) に渡す数字は XbeeApiで定められたものではなく
ark777 0:ad46c53f4977 32 * 単に地上局側でデータのフォーマットを判別するためのものなので
ark777 0:ad46c53f4977 33 * どの数字にどのフォーマットを当てはめるかはmainのプログラムを書く人が勝手に決めて良い
ark777 0:ad46c53f4977 34 * ただし0x00は非推奨 (パケットが128バイトを超えそうになった時にエラーとして0x00が使用されるため)
ark777 0:ad46c53f4977 35 */
ark777 0:ad46c53f4977 36 xbee.StartPacket(0x11); // ヘッダー0x11のパケットの準備 この数字は任意のものを書き込んでよい
ark777 0:ad46c53f4977 37 xbee.Write(1); // 上で用意したパケットにint型の数値を書き込む
ark777 0:ad46c53f4977 38 xbee.Write(0.5f); // 上で用意したパケットにfloat型の数値を書き込む
ark777 0:ad46c53f4977 39 xbee.Write(0.5); // 上で用意したパケットにdouble型の数値を書き込む
ark777 0:ad46c53f4977 40 xbee.EndPacket(); // パケットを送信
ark777 0:ad46c53f4977 41 wait(0.05);
ark777 0:ad46c53f4977 42 }
ark777 0:ad46c53f4977 43 }
ark777 0:ad46c53f4977 44
ark777 0:ad46c53f4977 45 // パケット受信時の処理 Length: データ長 *message: データ
ark777 0:ad46c53f4977 46 void OnXbeeDataReceived(int Length, char *message){
ark777 0:ad46c53f4977 47 led1 = !led1;
ark777 0:ad46c53f4977 48 }