PLANET-Q ES920LR Library

Dependents:   IZU2020_GROUND_STATION IZU2020_AVIONICS IZU2020_AVIONICS

Committer:
tanahashi
Date:
Tue Dec 17 14:03:03 2019 +0000
Revision:
1:a5114a32febe
Parent:
0:064d3711be83
added comment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tanahashi 0:064d3711be83 1 #ifndef PQES920LR_H
tanahashi 0:064d3711be83 2 #define PQES920LR_H
tanahashi 0:064d3711be83 3
tanahashi 1:a5114a32febe 4 /**
tanahashi 1:a5114a32febe 5 * ES920LRのライブラリ
tanahashi 1:a5114a32febe 6 * @note 内部でシリアル受信割り込みを使用しています
tanahashi 1:a5114a32febe 7 * @note 適切な送信時間間隔を取ること
tanahashi 1:a5114a32febe 8 * @note attachで受信イベントハンドラを設定すること
tanahashi 1:a5114a32febe 9 * @code
tanahashi 1:a5114a32febe 10 #include "mbed.h"
tanahashi 1:a5114a32febe 11 #include "PQES920LR.h"
tanahashi 1:a5114a32febe 12
tanahashi 1:a5114a32febe 13 Serial pc(USBTX, USBRX, 115200);
tanahashi 1:a5114a32febe 14 Serial es_serial(p9, p10, 115200);
tanahashi 1:a5114a32febe 15
tanahashi 1:a5114a32febe 16 ES920LR es(es_serial);
tanahashi 1:a5114a32febe 17
tanahashi 1:a5114a32febe 18 char data[50];
tanahashi 1:a5114a32febe 19
tanahashi 1:a5114a32febe 20 void on_receive(char *buff)
tanahashi 1:a5114a32febe 21 {
tanahashi 1:a5114a32febe 22 for(int i = 0; i < 50; i++) {
tanahashi 1:a5114a32febe 23 pc.printf("%x ", buff[i]);
tanahashi 1:a5114a32febe 24 }
tanahashi 1:a5114a32febe 25 }
tanahashi 1:a5114a32febe 26
tanahashi 1:a5114a32febe 27 int main()
tanahashi 1:a5114a32febe 28 {
tanahashi 1:a5114a32febe 29 es.attach(&on_receive);
tanahashi 1:a5114a32febe 30 for(int i = 0; i < 50; i++) {
tanahashi 1:a5114a32febe 31 data[i] = 0xFF;
tanahashi 1:a5114a32febe 32 }
tanahashi 1:a5114a32febe 33 while(1) {
tanahashi 1:a5114a32febe 34 es.send(data, 50);
tanahashi 1:a5114a32febe 35 wait(1);
tanahashi 1:a5114a32febe 36 }
tanahashi 1:a5114a32febe 37 }
tanahashi 1:a5114a32febe 38 * @endcode
tanahashi 1:a5114a32febe 39 */
tanahashi 1:a5114a32febe 40
tanahashi 1:a5114a32febe 41 class ES920LR
tanahashi 1:a5114a32febe 42 {
tanahashi 0:064d3711be83 43 private:
tanahashi 0:064d3711be83 44 Serial *_serial;
tanahashi 0:064d3711be83 45 char tx_buf[52];
tanahashi 0:064d3711be83 46 char rx_buf[52];
tanahashi 0:064d3711be83 47 char rx_size;
tanahashi 0:064d3711be83 48 int index;
tanahashi 0:064d3711be83 49 int flag;
tanahashi 0:064d3711be83 50 bool response;
tanahashi 1:a5114a32febe 51
tanahashi 0:064d3711be83 52 void (*func)(char*);
tanahashi 1:a5114a32febe 53
tanahashi 0:064d3711be83 54 public:
tanahashi 1:a5114a32febe 55 /**
tanahashi 1:a5114a32febe 56 * @param es_serial Serialのインスタンスへの参照
tanahashi 1:a5114a32febe 57 */
tanahashi 1:a5114a32febe 58 ES920LR(Serial &es_serial);
tanahashi 1:a5114a32febe 59
tanahashi 1:a5114a32febe 60 /**
tanahashi 1:a5114a32febe 61 * @param data 送信するバイナリデータの配列(最大50バイト)
tanahashi 1:a5114a32febe 62 * @param size 送信するバイナリデータのサイズ
tanahashi 1:a5114a32febe 63 */
tanahashi 0:064d3711be83 64 void send(char *data, int size);
tanahashi 1:a5114a32febe 65
tanahashi 1:a5114a32febe 66 /**
tanahashi 1:a5114a32febe 67 * @param func_ptr 受信時に呼ばれる関数へのポインタ、引数に受信データを受け取る
tanahashi 1:a5114a32febe 68 */
tanahashi 0:064d3711be83 69 void attach(void(*func_ptr)(char*));
tanahashi 0:064d3711be83 70
tanahashi 0:064d3711be83 71 private:
tanahashi 0:064d3711be83 72 void receive();
tanahashi 0:064d3711be83 73 };
tanahashi 0:064d3711be83 74
tanahashi 0:064d3711be83 75 #endif