duedueduedeu
Dependencies: XbeeApiLib mbed
main.cpp@0:ad46c53f4977, 2017-03-11 (annotated)
- Committer:
- ark777
- Date:
- Sat Mar 11 19:59:29 2017 +0000
- Revision:
- 0:ad46c53f4977
XbeeApi????????
Who changed what in which revision?
User | Revision | Line number | New 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 | } |