920MHz帯無線機モジュール ES920LR用ライブラリ いわゆるLoRaWAN
Dependents: HYBRYD2018_IZU_GROUND_STATION HYBRYD2018_IZU_ROCKET Hybrid_IZU201811_GNDv1 Hybrid_IZU2019 ... more
Diff: ES920LR.hpp
- Revision:
- 3:4e3a413e04d9
- Parent:
- 1:febb32df437c
- Child:
- 4:bfe82335b4e5
--- a/ES920LR.hpp Tue Feb 20 17:58:41 2018 +0000 +++ b/ES920LR.hpp Wed May 02 18:18:26 2018 +0000 @@ -77,7 +77,7 @@ public: - ES920LR(Serial &serial, const int baud = 115200){ + /*ES920LR(RawSerial &serial, const int baud = 115200){ AB = BUFF_A; ser = &serial; _baud = baud; @@ -86,11 +86,23 @@ ser->attach(this, &ES920LR::es920lrHandler, Serial::RxIrq);//受信割り込み設定 _es920lr_timer.start();//タイマースタート printf("hello world\r\n"); + }*/ + ES920LR(RawSerial &serial, RawSerial &pc, const int baud = 115200 ){ + AB = BUFF_A; + ser = &serial; + _pc = &pc; + _baud = baud; + ser->baud(_baud); + init(); + _es920lr_timer.start();//タイマースタート + printf("hello world\r\n"); + wait(2.0f); + ser->attach(this, &ES920LR::es920lrHandler, Serial::RxIrq);//受信割り込み設定 } - private: - Serial * ser; + RawSerial * ser; + RawSerial * _pc; Timer _es920lr_timer; int _baud; @@ -173,8 +185,9 @@ memset(rcvPANID, '\0', 5); memset(rcvADDR, '\0', 5); header = 0; - - ser->printf("start\r\n"); + responseFlag = 0; + //ser->printf("start\r\n"); + ser->baud(115200); wait(0.5f); } @@ -191,7 +204,7 @@ //送信バッファを送信する void send() { - printf("index:%d\r\n", sendIndex); + //_pc->printf("index:%d\r\n", sendIndex); sendBuff[0] = (uint8_t)(sendIndex - 1);//sendIndexは一つ大きいので sendBuff[sendIndex + 1] = '\0';//printf用に最後にnullを追加 responseFlag = 1; @@ -199,12 +212,12 @@ ser->putc(sendBuff[i]); } //ser->printf("%s", sendBuff);//putcにすべきだった - - printf("send: "); + _pc->printf("index: %d\r\n", sendIndex); + _pc->printf("send: "); for (int i = 0; i < sendIndex; ++i) { - printf("%02X ", sendBuff[i]); + _pc->printf("%02X ", sendBuff[i]); } - printf("\r\n"); + _pc->printf("\r\n"); //初期化 @@ -386,7 +399,7 @@ c = ser->getc();//1byte受信 - //printf("%02X ", c); + //_pc->printf("%02X ", c); callTime[1] = _es920lr_timer.read_us();//現在の時刻を取得 if (abs(callTime[1] - callTime[0]) > ES920LR_DATA_INTERVAL) {//前の呼び出しとのΔtから新しいデータか判断 @@ -408,11 +421,12 @@ firstFlag = 1; writeBuffAddr[index + 1] = '\0';//終端文字追加 //printf("%s\r\n", writeBuffAddr); - printf("wbuf: "); + /*printf("wbuf: "); for (int i = 0; i < 49; ++i) { printf("%02X ", writeBuffAddr[i]); } printf("\r\n"); + */ if (AB == BUFF_A) {//現在バッファAに書き込み中 @@ -434,11 +448,11 @@ //デバッグ //printf("%s ", rssi); for (int i = 0; i < 49; ++i) { - printf("%02X ", data[i]); + _pc->printf("%02X ", data[i]); } - printf("\r\n"); - printf("header: %02X\r\n", header); - printf("size: %d\r\n", dataSize); + _pc->printf("\r\n"); + _pc->printf("header: %02X\r\n", header); + _pc->printf("size: %d\r\n", dataSize); //ユーザー関数呼び出し if (p_callFunc[(uint8_t)header] != NULL) { @@ -448,7 +462,7 @@ else {//レスポンス responseFlag = 0; //デバッグ - printf("res %s\r\n", readBuffAddr); + _pc->printf("res %s\r\n", readBuffAddr); } }