mirror of
https://github.com/mikecarper/MeshCore.git
synced 2026-09-09 14:35:39 +00:00
Integrates Mike Carper's transmission-reliability work (direct retries with SNR-adaptive backoff and CR, flood retry controls, alt-path replies, flood channel gates) plus its upstream/dev base (as of 2026-07-06) on top of the observer stack. The flex branch is untouched; this branch is the experimental integration line. Conflict-resolution decisions, for future re-syncs (git rerere is enabled and has recorded these): - NodePrefs adopts keymind/upstream member order + retry/flood tail. Member order is in-memory only: /com_prefs stays field-by-field with the same canonical file order both sides already share through offset 294; keymind appends the retry tail at 295+ (new canonical size 676). Flex fleet files load unchanged; retry fields default via direct_retry_prefs_magic. - loadPrefsInt keeps the fork's legacy MQTT-gap recovery but moves its detection boundary from 'extra > 5' to 'extra > LEGACY_MQTT_GAP_3SLOT (864)' so keymind-size tails take the normal read path. COM_PREFS_TAIL_BYTES retired. - Dispatcher/RadioLibWrappers: fork watchdog additions + keymind TX overrides and CAD busy counter are unioned; RxReservePacketManager::queueOutbound follows upstream's new bool return (false when shedding). - CommonCLI: fork observer dispatch + versioned /mqtt_prefs machinery kept; keymind CLI (retry/flood/radioat) taken; duplicate CAD/FEM handlers and sanitise lines deduped (kept keymind placements to minimize future diff). - MyMesh (repeater/room): fork alerter/OTA/observer wiring kept; keymind scheduled-radio system replaces the old pending_* temp-radio members; applySavedRadioParams() replaces raw setParams at startup. - ESP32Board: fork manifest-OTA + keymind powerOff/deepSleep and stopOTAUpdate unioned; startOTAUpdate keeps fork's STA-aware IP with keymind's idempotency guard. - build.sh taken wholesale from keymind (fleet builds use GH Actions). Verified: Heltec_v3_repeater_observer_mqtt, Heltec_v3_repeater, heltec_v4_repeater_observer_mqtt, Heltec_v3_room_server_observer_mqtt build; host migration harness (13 MQTT + non-MQTT scenarios) passes with updated expectations (676-byte /com_prefs; odd-size files normalize on save, not load); native unit tests 13/13.
31 lines
786 B
C++
31 lines
786 B
C++
#pragma once
|
|
#include <stdint.h>
|
|
|
|
typedef enum {
|
|
GC1109_PA,
|
|
KCT8103L_PA,
|
|
OTHER_FEM_TYPES
|
|
} LoRaFEMType;
|
|
|
|
class LoRaFEMControl
|
|
{
|
|
public:
|
|
LoRaFEMControl(){ }
|
|
virtual ~LoRaFEMControl(){ }
|
|
void init(void);
|
|
void setSleepModeEnable(void);
|
|
void setTxModeEnable(void);
|
|
void setRxModeEnable(void);
|
|
void setRxModeEnableWhenMCUSleep(void);
|
|
void setLNAEnable(bool enabled);
|
|
bool isLnaCanControl(void) const { return lna_can_control; }
|
|
bool isLNAEnabled(void) const { return lna_enabled; }
|
|
void setLnaCanControl(bool can_control) { lna_can_control = can_control; }
|
|
LoRaFEMType getFEMType(void) const { return fem_type; }
|
|
private:
|
|
LoRaFEMType fem_type=OTHER_FEM_TYPES;
|
|
bool lna_enabled=true;
|
|
bool lna_can_control=false;
|
|
};
|
|
|