PLANET-Q ES920LR Library
Dependents: IZU2020_GROUND_STATION IZU2020_AVIONICS IZU2020_AVIONICS
PQES920LR.h
- Committer:
- tanahashi
- Date:
- 2019-12-17
- Revision:
- 1:a5114a32febe
- Parent:
- 0:064d3711be83
File content as of revision 1:a5114a32febe:
#ifndef PQES920LR_H #define PQES920LR_H /** * ES920LRのライブラリ * @note 内部でシリアル受信割り込みを使用しています * @note 適切な送信時間間隔を取ること * @note attachで受信イベントハンドラを設定すること * @code #include "mbed.h" #include "PQES920LR.h" Serial pc(USBTX, USBRX, 115200); Serial es_serial(p9, p10, 115200); ES920LR es(es_serial); char data[50]; void on_receive(char *buff) { for(int i = 0; i < 50; i++) { pc.printf("%x ", buff[i]); } } int main() { es.attach(&on_receive); for(int i = 0; i < 50; i++) { data[i] = 0xFF; } while(1) { es.send(data, 50); wait(1); } } * @endcode */ class ES920LR { private: Serial *_serial; char tx_buf[52]; char rx_buf[52]; char rx_size; int index; int flag; bool response; void (*func)(char*); public: /** * @param es_serial Serialのインスタンスへの参照 */ ES920LR(Serial &es_serial); /** * @param data 送信するバイナリデータの配列(最大50バイト) * @param size 送信するバイナリデータのサイズ */ void send(char *data, int size); /** * @param func_ptr 受信時に呼ばれる関数へのポインタ、引数に受信データを受け取る */ void attach(void(*func_ptr)(char*)); private: void receive(); }; #endif