diff --git a/src/ESP32_APRS_Weather_Report.cpp b/src/ESP32_APRS_Weather_Report.cpp index 6c4c6f5..d3048ae 100644 --- a/src/ESP32_APRS_Weather_Report.cpp +++ b/src/ESP32_APRS_Weather_Report.cpp @@ -46,24 +46,57 @@ void APRS_connect(){ } void APRS_IS_READ(){ - String aprsisData; - //String mensaje; + String aprsisData = ""; + String packet = ""; + String mensaje1 = ""; + String mensaje2 = ""; + String emisario = ""; + String mensajeRespuesta; + + while (espClient.connected()) { - while (espClient.available() > 0) { - char c = espClient.read(); - if (c == '\n') { - Serial.print(aprsisData); - //Serial.println(aprsisData.indexOf("CD2RXU-9")); - /*mensaje = aprsisData; - delay(50); - if (mensaje.indexOf("CD2RXU-9") >= 0){ - Serial.print("CD2RXU-9 con info!!!!!!!!!!!!!"); - }*/ - aprsisData = ""; - //mensaje = ""; + while (espClient.available()) { + uint32_t lastTx = millis() - lastTxTime; + if (lastTx >= BeaconInterval) { + beacon_update = true; } - aprsisData += c; - + + if (beacon_update) { + Serial.println("enviando Beacon Estacion/iGate"); + espClient.write(WeatherReportBeaconPacket.c_str()); + lastTxTime = millis(); + beacon_update = false; + } + + + + + aprsisData = espClient.readStringUntil('\n'); //char c = espClient.read(); //if (c == '\n') { + Serial.println(aprsisData); //Serial.println(aprsisData.indexOf("CD2RXU-9")); + packet.concat(aprsisData); + if (packet.indexOf("CD2RXU-10") > 0){ + if (packet.indexOf("::")>0) { + mensaje1 = packet.substring(packet.indexOf("::")+2); + mensaje2 = mensaje1.substring(mensaje1.indexOf(":")+1); + emisario = packet.substring(0,packet.indexOf(">")); + Serial.print("--> es un mensaje para CD2RXU-10 = "); + Serial.println(mensaje2); + Serial.print("--> enviado por : "); + Serial.println(emisario); + for(int i = emisario.length(); i < 9; i++) { + emisario += ' '; + } + mensajeRespuesta = "CD2RXU-10>APLG01,TCPIP*,qAC,CHILE::" + emisario + ":" + "hola para ti tambien5" + "\n"; + Serial.print(mensajeRespuesta); + espClient.write(mensajeRespuesta.c_str()); + + } + } + aprsisData = ""; + packet = ""; + mensaje1 = ""; + mensaje2 = ""; + emisario = ""; //} //aprsisData += c; } } } diff --git a/src/config.h b/src/config.h index 27da475..1d3d294 100644 --- a/src/config.h +++ b/src/config.h @@ -8,13 +8,13 @@ #define BeaconInterval 900000 // 15 minutes = 900000 seg -const String WeatherReportCallsign = "CD2RXU-11"; +const String WeatherReportCallsign = "CD2RXU-10"; const String WeatherReportPasscode = "23201"; const String AprsServer = "radioaficion.pro"; // write the address of the aprs server //const String SERVER = "brazil.aprs2.net"; const int AprsServerPort = 14580; // 14579 port is allready filtered so use 14580 const String AprsSoftwareName = "ESP32_TEST"; const String AprsSoftwareVersion = "0.1.0"; -const int ReportingDistance = 50; +const int ReportingDistance = 30; const String AprsFilter = "t/poms/CD2RXU-10/50"; //cambio a : "t/poms/" + WeatherReportCallsign + "/" + String(ReportingDistance) const String WeatherReportComment = "LoRa APRS Weather Report https://github.com/richonguzman/ESP32_APRS_Weather_Report";