diff --git a/data_embed/index.html b/data_embed/index.html index af976eb..f534083 100644 --- a/data_embed/index.html +++ b/data_embed/index.html @@ -97,6 +97,10 @@ +
+ + +
Fixed Beaconing Settings
diff --git a/include/preference_storage.h b/include/preference_storage.h index 1d539da..6feea31 100644 --- a/include/preference_storage.h +++ b/include/preference_storage.h @@ -7,7 +7,7 @@ #define ENABLE_PREFERENCES extern Preferences preferences; -// MAX 15 chars for preferenece key!!! +// MAX 15 chars for preference key!!! static const char *const PREF_WIFI_SSID = "wifi_ssid"; static const char *const PREF_WIFI_PASSWORD = "wifi_password"; // LoRa settings @@ -35,6 +35,8 @@ static const char *const PREF_APRS_FIXED_BEACON_PRESET = "aprs_fixed_beac"; static const char *const PREF_APRS_FIXED_BEACON_PRESET_INIT = "aprs_fix_b_init"; static const char *const PREF_APRS_FIXED_BEACON_INTERVAL_PRESET = "aprs_fb_interv"; static const char *const PREF_APRS_FIXED_BEACON_INTERVAL_PRESET_INIT = "aprs_fb_in_init"; +static const char *const PREF_ENABLE_TNC_SELF_TELEMETRY = "aprs_self_tel"; +static const char *const PREF_ENABLE_TNC_SELF_TELEMETRY_INIT = "aprs_self_tel_i"; // SMART BEACONING static const char *const PREF_APRS_SB_MIN_INTERVAL_PRESET = "sb_min_interv"; static const char *const PREF_APRS_SB_MIN_INTERVAL_PRESET_INIT = "sb_min_interv_i"; diff --git a/platformio.ini b/platformio.ini index 9bceb1f..e9866dd 100644 --- a/platformio.ini +++ b/platformio.ini @@ -31,29 +31,29 @@ lib_deps = build_flags = -Wl,--gc-sections,--relax -D 'KISS_PROTOCOL' ; leave enabled - -D 'CALLSIGN="N0CALL-0"' ; can be set from www interfeace - -D 'DIGI_PATH="WIDE1-1"' ; can be set from www interfeace - -D 'FIXED_BEACON_EN' ; can be set from www interfeace - -D 'LATIDUDE_PRESET="0000.00N"' ; can be set from www interfeace - -D 'LONGITUDE_PRESET="00000.00E"' ; can be set from www interfeace - -D 'APRS_SYMBOL_TABLE="/"' ; can be set from www interfeace - -D 'APRS_SYMBOL="["' ; can be set from www interfeace - -D 'MY_COMMENT="Lora Tracker"' ; can be set from www interfeace - -D 'SHOW_ALT' ; can be set from www interfeace - -D 'SHOW_BATT' ; can be set from www interfeace - -D 'SHOW_RX_PACKET' ; can be set from www interfeace - -D 'SHOW_RX_TIME=10000' ; can be set from www interfeace + -D 'CALLSIGN="N0CALL-0"' ; can be set from www interface + -D 'DIGI_PATH="WIDE1-1"' ; can be set from www interface + -D 'FIXED_BEACON_EN' ; can be set from www interface + -D 'LATIDUDE_PRESET="0000.00N"' ; can be set from www interface + -D 'LONGITUDE_PRESET="00000.00E"' ; can be set from www interface + -D 'APRS_SYMBOL_TABLE="/"' ; can be set from www interface + -D 'APRS_SYMBOL="["' ; can be set from www interface + -D 'MY_COMMENT="Lora Tracker"' ; can be set from www interface + -D 'SHOW_ALT' ; can be set from www interface + -D 'SHOW_BATT' ; can be set from www interface + -D 'SHOW_RX_PACKET' ; can be set from www interface + -D 'SHOW_RX_TIME=10000' ; can be set from www interface -D 'TXFREQ=433.775' ; set operating frequency -D 'SPEED_1200' ; comment out to set 300baud -D 'TXdbmW=23' ; set power - -D 'ENABLE_OLED' ; can be set from www interfeace - -D 'ENABLE_LED_SIGNALING' ; can be set from www interfeace + -D 'ENABLE_OLED' ; can be set from www interface + -D 'ENABLE_LED_SIGNALING' ; can be set from www interface -D 'NETWORK_TNC_PORT=8001' ; default KISS TCP port - -D 'MAX_TIME_TO_NEXT_TX=120000L' ; can be set from www interfeace - -D 'FIX_BEACON_INTERVAL=1800000L' ; can be set from www interfeace + -D 'MAX_TIME_TO_NEXT_TX=120000L' ; can be set from www interface + -D 'FIX_BEACON_INTERVAL=1800000L' ; can be set from www interface -D 'NETWORK_GPS_PORT=10110' ; GPS NMEA Port -D 'ENABLE_TNC_SELF_TELEMETRY' ; send telemetry data about device - -D 'TNC_SELF_TELEMETRY_INTERVAL=1800000L' ; telemetry interval + -D 'TNC_SELF_TELEMETRY_INTERVAL=60000L' ; telemetry interval (milliseconds) [env:ttgo-t-beam-v1.0] platform = espressif32 @ 3.0.0 diff --git a/src/TTGO_T-Beam_LoRa_APRS.ino b/src/TTGO_T-Beam_LoRa_APRS.ino index 22b1a20..0022cdd 100644 --- a/src/TTGO_T-Beam_LoRa_APRS.ino +++ b/src/TTGO_T-Beam_LoRa_APRS.ino @@ -114,6 +114,11 @@ boolean show_cmt = true; #else boolean showBattery = false; #endif +#ifdef ENABLE_TNC_SELF_TELEMETRY + boolean enable_tel = true; +#else + boolean enable_tel = false; +#endif #ifdef ENABLE_BLUETOOTH boolean enable_bluetooth = true; #else @@ -134,6 +139,7 @@ String LatShown=""; String LongFixed=""; String LatFixed=""; +//#if (enable_tel == true) && defined(KISS_PROTOCOL) #if defined(ENABLE_TNC_SELF_TELEMETRY) && defined(KISS_PROTOCOL) time_t nextTelemetryFrame; #endif @@ -479,28 +485,31 @@ String prepareCallsign(const String& callsign){ return tmpString; } +//#if (enable_tel == true) && defined(KISS_PROTOCOL) #if defined(ENABLE_TNC_SELF_TELEMETRY) && defined(KISS_PROTOCOL) -void sendTelemetryFrame() { - #ifdef T_BEAM_V1_0 - uint8_t b_volt = (axp.getBattVoltage() - 3000) / 5.1; - uint8_t b_in_c = (axp.getBattChargeCurrent()) / 10; - uint8_t b_out_c = (axp.getBattDischargeCurrent()) / 10; - uint8_t ac_volt = (axp.getVbusVoltage() - 3000) / 28; - uint8_t ac_c = (axp.getVbusCurrent()) / 10; + void sendTelemetryFrame() { + if(enable_tel == true){ + #ifdef T_BEAM_V1_0 + uint8_t b_volt = (axp.getBattVoltage() - 3000) / 5.1; + uint8_t b_in_c = (axp.getBattChargeCurrent()) / 10; + uint8_t b_out_c = (axp.getBattDischargeCurrent()) / 10; + uint8_t ac_volt = (axp.getVbusVoltage() - 3000) / 28; + uint8_t ac_c = (axp.getVbusCurrent()) / 10; - String telemetryParamsNames = String(":") + Tcall + ":PARM.B Volt,B In,B Out,AC V,AC C"; - String telemetryUnitNames = String(":") + Tcall + ":UNIT.mV,mA,mA,mV,mA"; - String telemetryEquations = String(":") + Tcall + ":EQNS.0,5.1,3000,0,10,0,0,10,0,0,28,3000,0,10,0"; - String telemetryData = String("T#MIC") + String(b_volt) + ","+ String(b_in_c) + ","+ String(b_out_c) + ","+ String(ac_volt) + ","+ String(ac_c) + ",00000000"; - String telemetryBase = ""; - telemetryBase += Tcall + ">APLO01" + ":"; - sendToTNC(telemetryBase + telemetryParamsNames); - sendToTNC(telemetryBase + telemetryUnitNames); - sendToTNC(telemetryBase + telemetryEquations); - sendToTNC(telemetryBase + telemetryData); + String telemetryParamsNames = String(":") + Tcall + ":PARM.B Volt,B In,B Out,AC V,AC C"; + String telemetryUnitNames = String(":") + Tcall + ":UNIT.mV,mA,mA,mV,mA"; + String telemetryEquations = String(":") + Tcall + ":EQNS.0,5.1,3000,0,10,0,0,10,0,0,28,3000,0,10,0"; + String telemetryData = String("T#MIC") + String(b_volt) + ","+ String(b_in_c) + ","+ String(b_out_c) + ","+ String(ac_volt) + ","+ String(ac_c) + ",00000000"; + String telemetryBase = ""; + telemetryBase += Tcall + ">APLO01" + ":"; + sendToTNC(telemetryBase + telemetryParamsNames); + sendToTNC(telemetryBase + telemetryUnitNames); + sendToTNC(telemetryBase + telemetryEquations); + sendToTNC(telemetryBase + telemetryData); + } + #endif + } #endif -} -#endif // + SETUP --------------------------------------------------------------+// void setup(){ @@ -589,6 +598,12 @@ void setup(){ } showBattery = preferences.getBool(PREF_APRS_SHOW_BATTERY); + if (!preferences.getBool(PREF_ENABLE_TNC_SELF_TELEMETRY_INIT)){ + preferences.putBool(PREF_ENABLE_TNC_SELF_TELEMETRY_INIT, true); + preferences.putBool(PREF_ENABLE_TNC_SELF_TELEMETRY, enable_tel); + } + enable_tel = preferences.getBool(PREF_ENABLE_TNC_SELF_TELEMETRY); + if (!preferences.getBool(PREF_APRS_LATITUDE_PRESET_INIT)){ preferences.putBool(PREF_APRS_LATITUDE_PRESET_INIT, true); preferences.putString(PREF_APRS_LATITUDE_PRESET, LATIDUDE_PRESET); @@ -1015,6 +1030,7 @@ void loop() { } } } + //#if (enable_tel == true) && defined(KISS_PROTOCOL) #if defined(ENABLE_TNC_SELF_TELEMETRY) && defined(KISS_PROTOCOL) if (nextTelemetryFrame < millis()){ nextTelemetryFrame = millis() + TNC_SELF_TELEMETRY_INTERVAL; diff --git a/src/taskWebServer.cpp b/src/taskWebServer.cpp index 437f40a..669a52c 100644 --- a/src/taskWebServer.cpp +++ b/src/taskWebServer.cpp @@ -171,6 +171,7 @@ void handle_Cfg() { jsonData += jsonLineFromPreferenceBool(PREF_APRS_FIXED_BEACON_PRESET); jsonData += jsonLineFromPreferenceBool(PREF_APRS_SHOW_ALTITUDE); jsonData += jsonLineFromPreferenceBool(PREF_APRS_GPS_EN); + jsonData += jsonLineFromPreferenceBool(PREF_ENABLE_TNC_SELF_TELEMETRY); jsonData += jsonLineFromPreferenceBool(PREF_DEV_OL_EN); jsonData += jsonLineFromPreferenceBool(PREF_APRS_SHOW_CMT); jsonData += jsonLineFromPreferenceBool(PREF_DEV_BT_EN); @@ -257,6 +258,7 @@ void handle_SaveAPRSCfg() { } preferences.putBool(PREF_APRS_SHOW_BATTERY, server.hasArg(PREF_APRS_SHOW_BATTERY)); + preferences.putBool(PREF_ENABLE_TNC_SELF_TELEMETRY, server.hasArg(PREF_ENABLE_TNC_SELF_TELEMETRY)); preferences.putBool(PREF_APRS_SHOW_ALTITUDE, server.hasArg(PREF_APRS_SHOW_ALTITUDE)); preferences.putBool(PREF_APRS_FIXED_BEACON_PRESET, server.hasArg(PREF_APRS_FIXED_BEACON_PRESET)); preferences.putBool(PREF_APRS_GPS_EN, server.hasArg(PREF_APRS_GPS_EN));