diff --git a/platformio.ini b/platformio.ini index 9f841819..a4499620 100644 --- a/platformio.ini +++ b/platformio.ini @@ -7,7 +7,7 @@ ; ---> SELECT THE TARGET PLATFORM HERE! <--- [board] -;halfile = generic.h +halfile = generic.h ;halfile = ebox.h ;halfile = eboxtube.h ;halfile = ecopower.h @@ -18,7 +18,7 @@ ;halfile = ttgov21old.h ;halfile = ttgov21new.h ;halfile = ttgofox.h -halfile = ttgobeam.h +;halfile = ttgobeam.h ;halfile = fipy.h ;halfile = lopy.h ;halfile = lopy4.h @@ -81,7 +81,7 @@ lib_deps_all = build_flags_basic = -include "src/hal/${board.halfile}" -include "src/paxcounter.conf" - ;-w + -w '-DCORE_DEBUG_LEVEL=${common.debug_level}' '-DLOG_LOCAL_LEVEL=${common.debug_level}' '-DPROGVERSION="${common.release_version}"' diff --git a/src/TTN/packed_decoder.js b/src/TTN/packed_decoder.js index f1bf2c73..6db312a4 100644 --- a/src/TTN/packed_decoder.js +++ b/src/TTN/packed_decoder.js @@ -20,11 +20,11 @@ function Decoder(bytes, port) { } // combined wifi counter and gps data if (bytes.length === 15) { - return decode(bytes, [uint16, latLng, latLng, uint8, hdop, uint16], ['wifi', 'latitude', 'longitude', 'sats', 'hdop', 'altitude']); + return decode(bytes, [uint16, latLng, latLng, uint8, hdop, altitude], ['wifi', 'latitude', 'longitude', 'sats', 'hdop', 'altitude']); } // combined wifi + ble counter and gps data if (bytes.length === 17) { - return decode(bytes, [uint16, uint16, latLng, latLng, uint8, hdop, uint16], ['wifi', 'ble', 'latitude', 'longitude', 'sats', 'hdop', 'altitude']); + return decode(bytes, [uint16, uint16, latLng, latLng, uint8, hdop, altitude], ['wifi', 'ble', 'latitude', 'longitude', 'sats', 'hdop', 'altitude']); } } @@ -42,7 +42,7 @@ function Decoder(bytes, port) { if (port === 4) { // gps data - return decode(bytes, [latLng, latLng, uint8, hdop, uint16], ['latitude', 'longitude', 'sats', 'hdop', 'altitude']); + return decode(bytes, [latLng, latLng, uint8, hdop, altitude], ['latitude', 'longitude', 'sats', 'hdop', 'altitude']); } if (port === 5) { @@ -147,6 +147,18 @@ var hdop = function (bytes) { }; hdop.BYTES = 2; +var altitude = function (bytes) { + if (bytes.length !== altitude.BYTES) { + throw new Error('Altitude must have exactly 2 bytes'); + } + var alt = bytesToInt(bytes); + if (alt > 32767) { + alt -= 65536; + } + return alt; +}; +altitude.BYTES = 2; + var float = function (bytes) { if (bytes.length !== float.BYTES) { throw new Error('Float must have exactly 2 bytes'); @@ -253,6 +265,7 @@ if (typeof module === 'object' && typeof module.exports !== 'undefined') { pressure: pressure, latLng: latLng, hdop: hdop, + altitude: altitude, bitmap1: bitmap1, bitmap2: bitmap2, version: version, diff --git a/src/hal/ttgobeam.h b/src/hal/ttgobeam.h index a7851877..41fd0ef0 100644 --- a/src/hal/ttgobeam.h +++ b/src/hal/ttgobeam.h @@ -25,13 +25,13 @@ // GPS settings #define HAS_GPS 1 // use on board GPS #define GPS_SERIAL 9600, SERIAL_8N1, GPIO_NUM_12, GPIO_NUM_15 // UBlox NEO 6M -#define GPS_INT GPIO_NUM_34 // 30ns accurary timepulse, to be external wired on pcb: NEO 6M Pin#3 -> GPIO34 +//#define GPS_INT GPIO_NUM_34 // 30ns accurary timepulse, to be external wired on pcb: NEO 6M Pin#3 -> GPIO34 // enable only if device has these sensors, otherwise comment these lines // BME680 sensor on I2C bus -#define HAS_BME 1 // Enable BME sensors in general -#define HAS_BME680 SDA, SCL -#define BME680_ADDR BME680_I2C_ADDR_PRIMARY // !! connect SDIO of BME680 to GND !! +//#define HAS_BME 1 // Enable BME sensors in general +//#define HAS_BME680 SDA, SCL +//#define BME680_ADDR BME680_I2C_ADDR_PRIMARY // !! connect SDIO of BME680 to GND !! // display (if connected) #define HAS_DISPLAY U8X8_SSD1306_128X64_NONAME_HW_I2C diff --git a/src/main.cpp b/src/main.cpp index e47d71c4..a147707f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -35,7 +35,7 @@ clockloop 1 4 generates realtime telegrams for external clock timesync_req 1 3 processes realtime time sync requests irqhandler 1 2 display, timesync, gps, etc. triggered by timers gpsloop 1 2 reads data from GPS via serial or i2c -bmeloop 1 1 reads data from BME sensor via i2c +bmeloop 1 2 reads data from BME sensor via i2c looptask 1 1 runs the LMIC LoRa stack (arduino loop) IDLE 1 0 ESP32 arduino scheduler -> runs wifi channel rotator diff --git a/src/paxcounter.conf b/src/paxcounter.conf index 1da72086..13b6c0b7 100644 --- a/src/paxcounter.conf +++ b/src/paxcounter.conf @@ -71,7 +71,7 @@ #define TIME_SYNC_INTERVAL_RETRY 10 // retry time sync after lost sync each .. minutes [default = 10], 0 means off #define TIME_SYNC_COMPILEDATE 0 // set to 1 to use compile date to initialize RTC after power outage [default = 0] #define TIME_SYNC_LORAWAN 0 // set to 1 to use LORA network as time source, 0 means off [default = 0] -#define TIME_SYNC_LORASERVER 1 // set to 1 to use LORA timeserver as time source, 0 means off [default = 0] +#define TIME_SYNC_LORASERVER 0 // set to 1 to use LORA timeserver as time source, 0 means off [default = 0] // settings for syncing time with timeserver applications #define TIME_SYNC_SAMPLES 1 // number of time requests for averaging