Major changes. Hard work on this new releae.

Improvements
- Even more intelligent behavior in "Allow failback Mode AP"
- Webserver: Current GPS location can be stored as current lat/lon;
             And fixed a not-so-nice down-rounding from i.e.
             53.2100N to 53.2099N
- Webserver: better input handling for ap password, remoteAP ssid and
  password, syslog and ntp server
- Webserver: fixed typos in tooltip texts, and improved documentation,
  especially for the new features
- Position ambiguity and higher precision
  You can choose now between
    - compressed position (also when fixed position).
    - uncompressed aprs position
    - uncompressed aprs position with higher precision (DAO W and w)
  Improvement for unknown position: encode it according to aprs spec
- OLED: more variants to display lat/lon positions.
  Displayed lat/lon resolution depends on setting and if you move,
  and current gps hdop.
  You can also configure if maidenhead grid locator is shown (always,
  never, in intervals). Locator could be shown as RR99XX, RR99XX99
  or RR99XX99xx - you can choose which variant you like.
- Oled Lines: one-liners now cut at end of display-length;
  except for line2 (if line3-5 are empty).
  Oled display.display() is called only if display is on.
  Improvement for fillDisplayLines3to5 (may be forced)
- Serial output on boot: Warn for unser preference variables only once,
  and set them accordingly
- Digipeating / Gate handling. Don't send 3rd-party packets
  back to aprsis. Digipeat telemetry only do secondary qrg.
- aprs-is:
    - 3rd-party traffic: it's not seldom that igates use
  lowercase calls. Don't tread this as (minor) error anymore.
    - aprs-is: improved filters according to aprsis spec
- digipeating:
  - if we are a WIDE1 (= fill-in) digi and if a packet is in
  lora_TXBUF_for_digipeating and we hear a repeated one with same
  source-address and content, we clear it from queue.
  Improved viscous-delay.

For development (compile time): different debug-verbose levels

Fixes
- aprsLatPreset (etc..) variables are now changed from their temporary
  variable names at once. Reading from preferences, a separate
  variable is filled. This mitigates a smp problem between webserver
  and main threads
- aprsis login messages missed word "vers " placed before the version string
- Small fix for aprsis 3rd party traffic encoding according to the spec.
- Some numbers with decimals are now shown complete (instead of cut'ed
  to two decimals (default of String(floatVariable)).
- fixes for some buffer dimensions; detected two buffer overflow conditions
- Telemetry: assurance that values > 255 are ceiled and not start from 0 again
   (An analoge value must not exceet 255)

This dedicated to the three-country-edge SysOp meeting
in Engen 2023-02-11 ;)
LoRa was one topic..

And after my commit 38387dc189 from
Sun Feb 19 20:36:05 2023 +0100, I saw at github that hb9xar found
three bugs. One is (because code changed with my last commit ant
fixed it); the other tow I add now:
  fixed "message capable" APRS indicator upon startup
  USB CLI: fixed: shutdown command was not working

Signed-off-by: DL3EL <dl3el@darc.de>
Signed-off-by: Thomas Osterried <dl9sau@darc.de>
pull/8/head refs/heads/master-2023-02-19T205722
Thomas Osterried 2023-02-19 21:08:22 +01:00
rodzic 38387dc189
commit aa854462d4
1 zmienionych plików z 3 dodań i 2 usunięć

Wyświetl plik

@ -617,7 +617,8 @@ out_relay_path:
#if defined(ENABLE_BLUETOOTH) && defined(KISS_PROTOCOL)
(enable_bluetooth && SerialBT.hasClient()) ||
#endif
((time_last_own_text_message_via_kiss_received + 24*60*60*1000L) > millis())
(time_last_own_text_message_via_kiss_received &&
((time_last_own_text_message_via_kiss_received + 24*60*60*1000L) > millis()) )
)
outString += "=";
else
@ -4407,7 +4408,7 @@ void handle_usb_serial_input(void) {
}
if (arg == "" &&
(cmd == "?" || cmd == "beacon" || cmd == "converse" || cmd == "display" || cmd == "reboot") ) {
(cmd == "?" || cmd == "beacon" || cmd == "converse" || cmd == "display" || cmd == "reboot" || cmd == "shutdown") ) {
if (cmd == "beacon") {
Serial.println("*** beacon: sending");
manBeacon = true;