Skip to content

APD status indicators need refinement #4

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

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions