peer to peer rx terminal
Dependencies: ISL29011 libxDot-dev-mbed5-deprecated
Fork of peer-to-peer_rxtx by
Revision 62:5a4266922385, committed 2018-06-07
- Comitter:
- mbt1992
- Date:
- Thu Jun 07 23:48:49 2018 +0000
- Parent:
- 61:ebe1838a9301
- Commit message:
- Peer to Peer rx
Changed in this revision
RadioEvent.h | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/RadioEvent.h Sat Mar 10 14:05:32 2018 +0000 +++ b/RadioEvent.h Thu Jun 07 23:48:49 2018 +0000 @@ -10,18 +10,29 @@ RadioEvent() {} virtual ~RadioEvent() {} + + std::string buffer; virtual void MacEvent(LoRaMacEventFlags* flags, LoRaMacEventInfo* info) { if (flags->Bits.Rx) { - logDebug("Rx %d bytes", info->RxBufferSize); if (info->RxBufferSize > 0) { // print RX data as string and hexadecimal std::string rx((const char*)info->RxBuffer, info->RxBufferSize); printf("Rx data: %s [%s]\r\n", rx.c_str(), mts::Text::bin2hexString(info->RxBuffer, info->RxBufferSize).c_str()); + buffer += rx; } } } + + string print(){ + std::string pepe; + pepe = buffer; + buffer = ""; + return(pepe); + } + + }; #endif
--- a/main.cpp Sat Mar 10 14:05:32 2018 +0000 +++ b/main.cpp Thu Jun 07 23:48:49 2018 +0000 @@ -7,8 +7,8 @@ #include <string> #include <vector> -//#define PEER_TO_PEER_SAMPLE 1 - #define OTA +#define PEER_TO_PEER_SAMPLE 1 + //#define OTA using namespace mts; #if defined(PEER_TO_PEER_SAMPLE) static uint8_t network_address[] = { 0x01, 0x02, 0x03, 0x04 }; @@ -116,7 +116,7 @@ //dot->resetNetworkSession(); //dot->restoreNetworkSession(); //dot->saveNetworkSession(); - dot->setLogLevel(MTSLog::TRACE_LEVEL); + dot->setLogLevel(MTSLog::INFO_LEVEL); #if defined(PEER_TO_PEER_SAMPLE) // attach the custom events handler @@ -177,37 +177,13 @@ } logInfo("joined"); - for (uint8_t i = 0; i < iterations; i++) { - send_data[0] = i;//Envio en que iteracion estoy - if ((ret = dot->send(send_data)) != mDot::MDOT_OK) { - logError("failed to send: [%d][%s]", ret, mDot::getReturnCodeString(ret).c_str()); - send_failure++; - } else { - logInfo("send data: %s", Text::bin2hexString(send_data).c_str()); - //La funcion RECV() No funciona en peer to peer. La ventana de tiempo en que esta abierto - //el canal despues de hacer el send, para escuchar la respuesta es - //muy corta y seria muy dificil hacer la sincronizacion - //En peer to peer el dispositivo nunca se pone en deep sleep y esta escuchando continumente. - //Por lo tanto la respuesta unicamente vendra a traves de un evento. - //Por el contrario cuando la comunicacion es OTA, con el gateway aqui si deberiamos obtener el mensaje. - if ((ret = dot->recv(recv_data)) != mDot::MDOT_OK) { - logError("failed to recv: [%d][%s]", ret, mDot::getReturnCodeString(ret).c_str()); - } else { - logInfo("recv data: %s", Text::bin2hexString(recv_data).c_str()); - if (recv_data == send_data) { - recv++; - } else { - recv_mismatch++; - } - } - recv_data.clear(); - } - + while(1) { + std::string rxxdata = events.print(); next_tx = dot->getNextTxMs() + 1; - logInfo("waiting %ld ms to transmit again", next_tx); - wait_ms(next_tx); - logInfo("waiting another %d seconds", wait_time); - wait(wait_time); + logInfo("Datos : %s", rxxdata); + wait_ms(5000); + logInfo("waiting data \n"); + wait_ms(100); } logInfo("Version: %s", dot->getId().c_str());