From b708524baa417a61219d0b60d08b6cf6b7de4b95 Mon Sep 17 00:00:00 2001 From: Klaus K Wilting Date: Sat, 14 Jul 2018 20:31:46 +0200 Subject: [PATCH] senddata restructured --- src/gpsread.cpp | 5 ----- src/main.cpp | 28 +++++++++++++++++++++++----- src/paxcounter.conf | 4 ++-- src/senddata.cpp | 12 ------------ 4 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/gpsread.cpp b/src/gpsread.cpp index 11a8cf92..d0a83e39 100644 --- a/src/gpsread.cpp +++ b/src/gpsread.cpp @@ -58,13 +58,8 @@ void gps_loop(void *pvParameters) { gps.encode(Wire.read()); vTaskDelay(1 / portTICK_PERIOD_MS); // polling mode: 500ms sleep } - - ESP_LOGI(TAG, "GPS NMEA data: passed %d / failed: %d / with fix: %d", - gps.passedChecksum(), gps.failedChecksum(), - gps.sentencesWithFix()); } // after GPS function was disabled, close connect to GPS device - Wire.endTransmission(); #endif // GPS Type diff --git a/src/main.cpp b/src/main.cpp index 2bd0a66d..1941c0cb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -451,6 +451,7 @@ void led_loop() { LEDState = ((millis() % 2000) < 200) ? LED_ON : LED_OFF; } else { #endif // HAS_LORA + // led off LEDColor = COLOR_NONE; LEDState = LED_OFF; @@ -463,13 +464,16 @@ void led_loop() { if (LEDState != previousLEDState) { if (LEDState == LED_ON) { rgb_set_color(LEDColor); + #ifdef LED_ACTIVE_LOW digitalWrite(HAS_LED, LOW); #else digitalWrite(HAS_LED, HIGH); #endif + } else { rgb_set_color(COLOR_NONE); + #ifdef LED_ACTIVE_LOW digitalWrite(HAS_LED, HIGH); #else @@ -480,7 +484,21 @@ void led_loop() { } }; // led_loop() +#endif // #if (HAS_LED != NOT_A_PIN) || defined(HAS_RGB_LED) + +void sendpayload() { + // append counter data to payload + payload.reset(); + payload.addCount(macs_wifi, cfg.blescan ? macs_ble : 0); + // append GPS data, if present +#ifdef HAS_GPS + if ((cfg.gpsmode) && (gps.location.isValid())) { + gps_read(); + payload.addGPS(gps_status); + } #endif + senddata(PAYLOADPORT); +} /* begin Aruino SETUP * ------------------------------------------------------------ */ @@ -559,8 +577,8 @@ void setup() { // install button interrupt (pulldown mode) pinMode(HAS_BUTTON, INPUT_PULLDOWN); attachInterrupt(digitalPinToInterrupt(HAS_BUTTON), ButtonIRQ, FALLING); -#endif -#endif +#endif // BUTTON_PULLUP +#endif // HAS_BUTTON // initialize wifi antenna if needed #ifdef HAS_ANTENNA_SWITCH @@ -676,7 +694,7 @@ void setup() { #endif // send initial payload to open transfer interfaces - senddata(PAYLOADPORT); + sendpayload(); } /* end Arduino SETUP @@ -696,7 +714,7 @@ void loop() { // send data every x seconds, x/2 is configured in cfg.sendcycle if ((uptime() % (cfg.sendcycle * 2000)) < 1) - senddata(PAYLOADPORT); + sendpayload(); #if (HAS_LED != NOT_A_PIN) || defined(HAS_RGB_LED) led_loop(); @@ -724,7 +742,7 @@ void loop() { #ifdef HAS_GPS // log NMEA status every 60 seconds, useful for debugging GPS connection if ((uptime() % 60000) < 1) { - ESP_LOGI(TAG, "GPS NMEA data: passed %d / failed: %d / with fix: %d", + ESP_LOGD(TAG, "GPS NMEA data: passed %d / failed: %d / with fix: %d", gps.passedChecksum(), gps.failedChecksum(), gps.sentencesWithFix()); if ((cfg.gpsmode) && (gps.location.isValid())) { diff --git a/src/paxcounter.conf b/src/paxcounter.conf index 8bd6d8cf..f4d5c052 100644 --- a/src/paxcounter.conf +++ b/src/paxcounter.conf @@ -45,9 +45,9 @@ // Default LoRa Spreadfactor #define LORASFDEFAULT 9 // 7 ... 12 SF, according to LoRaWAN specs #define MAXLORARETRY 500 // maximum count of TX retries if LoRa busy -#define RCMDPORT 2 // LoRaWAN Port on which device listenes for remote commands #define PAYLOADPORT 1 // LoRaWAN Port on which device sends counts -#define STATUSPORT 2 // LoRaWAN Port on which device sends status query results +#define RCMDPORT 2 // LoRaWAN Port on which device listenes for remote commands +#define STATUSPORT 2 // LoRaWAN Port on which device sends remote command results #define GPSPORT 3 // LoRaWAN Port on which device sends gps query results // Default RGB LED luminosity (in %) diff --git a/src/senddata.cpp b/src/senddata.cpp index 3b307702..94122ec0 100644 --- a/src/senddata.cpp +++ b/src/senddata.cpp @@ -3,18 +3,6 @@ void senddata(uint8_t port) { - // Prepare payload with counter and, if applicable, gps data - payload.reset(); - payload.addCount(macs_wifi, cfg.blescan ? macs_ble : 0); - - // append GPS data, if present -#ifdef HAS_GPS - if ((cfg.gpsmode) && (gps.location.isValid())) { - gps_read(); - payload.addGPS(gps_status); - } -#endif - #ifdef HAS_LORA // Check if there is a pending TX/RX job running if (LMIC.opmode & OP_TXRXPEND) {