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());
