PLANET-Q ES920LR Library
Dependents: IZU2020_GROUND_STATION IZU2020_AVIONICS IZU2020_AVIONICS
PQES920LR.h@1:a5114a32febe, 2019-12-17 (annotated)
- 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?
User | Revision | Line number | New 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 |