Skip to content

APD status indicators need refinement #4

@ten9876

Description

@ten9876

Summary

The APD (Adaptive Pre-Distortion) Active / Cal / Avail status indicators in the TX applet need further investigation to accurately reflect the radio's APD state.

Current State

  • APD enable/disable toggle works (apd enable=0|1)
  • Radio sends equalizer_active=0|1, configurable=1, linearity, sample_index, and insanity messages
  • Indicators update but mapping may not match SmartSDR behavior

What We Know from FlexLib

public bool EqualizerActive { get; set; }              // → "Active"
public bool EqualizerCalibrating => !EqualizerActive;  // → "Cal" (computed: !Active)
public bool Available { get; set; }                     // → "Avail" (never set in FlexLib)
  • Active and Cal are mutually exclusive (Cal = !Active)
  • Avail is never set in FlexLib — derived in the SmartSDR WPF UI layer (which we don't have)
  • Only one indicator should be lit at a time
  • All indicators off when APD is disabled

Observed Radio Behavior

  • equalizer_active jumps from 0→1 after first TX (no intermediate state)
  • linearity score (0–1) appears before equalizer_active flips
  • sample_index increments with each TX while refining the equalizer
  • insanity messages list quality issues during calibration
  • mmx=0 field never changes (purpose unknown)
  • configurable=1 is always present on FLEX-8600

Open Questions

  1. What exactly drives the Avail indicator in SmartSDR?
  2. Should insanity messages or linearity score affect indicator state?
  3. Does mmx play a role in the state machine?
  4. Is configurable the gate for Avail, or something else?

Related Files

  • src/gui/TxApplet.cpp — indicator display logic
  • src/models/TransmitModel.h/.cpp — APD state tracking
  • reference/FlexLib/FlexLib/APD.cs — FlexLib reference implementation

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions