* feat: add adaptive polling intervals to WebServer
Replace fixed 5ms polling with adaptive intervals based on HTTP activity:
- 50ms during active periods (first 5 seconds after request)
- 200ms during medium activity (5-30 seconds)
- 1000ms during idle periods (30+ seconds)
Reduces CPU usage significantly during idle periods while maintaining
responsiveness when handling HTTP requests.
* Fix integer overflow and magic numbers in WebServer
- Handle millis() overflow in getAdaptiveInterval()
- Replace magic numbers with named constants
- Improve code readability and maintainability
* Create channel-mute toggle function
* Added mute state to channel settings
* Create node-mute toggle functions
* Added mute state to nodedb entries
* Rebase protos
* Decouple protobuf changes
* Disable bell-invoked ext notifs for muted nodes
* Clearly dilineate module mute from sender or channel mute
* Disable bell-invoked ext notifs for muted channels
* Trunk fmt
* Disable message-invoked ext notifs for muted channels and nodes
* Disable on-screen 'new message' popup for muted nodes and channels
* Don't mute alerts
* Make use of pre-existing channel_settings.module_settings.is_client_muted setting
* Revert previous commit - this needs it's own proto
* Regen protos
* T-Lora Pager: Interrupt based rotary encoder
* T-Lora Pager: Fix amplifier fuzzing/popping
* Fix build for other variants
* Fix - reference actual channel when changing settings
* Update protos
* Refactor ref syntax
* Fix defines
* Update comments and remove unused function
* Regen protos
* Regen protobuffs again
* Fix build failure in ci, add missing argument
* Format
* InputPollable: System for polling after interrupts
* T-Lora Pager: Use InputPollable for RotaryEncoderImpl
* Rename RotaryEncoderImpl to TLoraPagerRotaryEncoder
* Revert "Rename RotaryEncoderImpl to TLoraPagerRotaryEncoder"
This reverts commit a76cc88dc2.
* Revert unnecessary ifdefs
* Regen protos
* Use latest protos
* Regen protos for latest changes
* Decouple node-mute from channel-mute
* Regen protos
* Fix desktop build
* More flexible InputPollable paradigm
* Custom xPortInIsrContext() for nRF52/RP2xx0
* Use channel as specified in the received packet
* Use channel as specified in the received packet for OLED screen notifications
* add heltec tracker v2 board.
* Use common power amp definition for Heltec v4 and Heltec Tracker v2
* Set appropriate mqtt root upon lora region change
* Use user preferences root topic if present
* delete SX126X_MAX_POWER=11
* Assume previous root on topic change
* update mqtt root when region is changed via OLED menu handler
* Regen protos
* Removed magic numbers
* Add DIRECT_MSG_ONLY buzzer mode (#8158)
* Handle existing special case for M5STACK_UNITC6L for DIRECT_MSG_ONLY buzz mode
There already exists a special case for M5STACK_UNITC6L.
Modified it to adhere to new DIRECT_MSG_ONLY buzzer mode
* Add new buzzer mode DIRECT_MSG_ONLY to BuzzerModeMenu
* Disable notifications when buzzer mode is DIRECT_MSG_ONLY
* Change alert_message_buzzer in notification module in DIRECT_MSG_ONLY buzz mode
Better comments
* Fixed spelling in debug log
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: nexpspace <4kosjdicx@mozmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* run trunk fmt
* Update variants/esp32s3/heltec_wireless_tracker_v2/variant.h
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Regen protos
* Pull latest protobufs
* Don't use IS_ONE_OF when loading Modules
* GAT562: Use PRIVATE_HW (fix build) (#8198)
* ESP32s2 doesn't implement HWCDC (#8199)
* Fix build script failure under certain conditions for devices that use UF2 binaries (#8150)
* Validate CR and SF lora config (#8146)
* Validate CR and SF lora config
* No zero-bw
* Update src/modules/AdminModule.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix braces
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Quote firmware paths given to uf2conv
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Calculate airtime of transmitted and received packets separately (#8205)
* Correcting GPS PINs (#8087)
https://github.com/meshtastic/firmware/issues/8084
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Clear out user.id except for sending to phone (#8202)
* Null out user.id except for sending to phone
* Fix
* Update src/modules/NodeInfoModule.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Copilot garbage
* This is unnecessary, because we don't stored user.id on userlite
* Don't need this
* Fix warning
* Just alter the protobuf
* Alter protobuf doesn't do anything with the altered data, so let's re-encode it
* Check inputbroker before access
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add dropped packet count to LocalStats (#8207)
* Add dropped packet count to LocalStats
In case the transmit queue was full
* Trunked
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
---------
Co-authored-by: ford-jones <fordnicholasjones@gmail.com>
Co-authored-by: WillyJL <me@willyjl.dev>
Co-authored-by: Ford Jones <107664313+ford-jones@users.noreply.github.com>
Co-authored-by: Tom Fifield <tom@tomfifield.net>
Co-authored-by: Quency-D <hj_zzns@163.com>
Co-authored-by: Quency-D <55523105+Quency-D@users.noreply.github.com>
Co-authored-by: nexpspace <380097+nexpspace@users.noreply.github.com>
Co-authored-by: nexpspace <4kosjdicx@mozmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Austin Lane <vidplace7@gmail.com>
Co-authored-by: Ken Piper <kealper@ivystone.net>
Co-authored-by: GUVWAF <78759985+GUVWAF@users.noreply.github.com>
Co-authored-by: Szetya <szetya@gmail.com>
* Null out user.id except for sending to phone
* Fix
* Update src/modules/NodeInfoModule.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Copilot garbage
* This is unnecessary, because we don't stored user.id on userlite
* Don't need this
* Fix warning
* Just alter the protobuf
* Alter protobuf doesn't do anything with the altered data, so let's re-encode it
* Check inputbroker before access
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>