Problem
The TunerApplet Fwd Power and SWR gauges always display 0 when a TGXL (Tuner Genius XL) is connected, even during active TX with a tune carrier.
Root Cause
The TGXL reports forward power and SWR via its direct TCP connection (port 9010), not through the radio's VITA-49 meter stream (PCC 0x8002). SmartSDR v3.9.18+ gets TGXL power/SWR from the TGXL directly — this was a key change in TGXL firmware v1.2.17.
AetherSDR's TgxlConnection already polls status every 1 second and receives fwd= and swr= fields in the response KV pairs. However, TunerModel only reads relay positions (relayC1, relayL, relayC2) and antenna state (antA) — it ignores the fwd and swr fields entirely.
The alternative path through MeterModel (VITA-49 AMP meters disambiguated by handle) appears to not receive TGXL-specific meter definitions from the radio in this configuration (FLEX-8600 + PGXL + TGXL 3x1).
Code Path Trace
TgxlConnection::pollStatus() sends "status" command on port 9010 every 1 second
- Response parsed into KV map containing
fwd=, swr=, relay positions, etc.
TunerModel::setDirectConnection() handles stateUpdated and statusUpdated signals
- But only reads:
relayC1, relayL, relayC2, antA, tuning, operate, bypass
fwd and swr fields are in the KV map but never extracted
Fix Approach
- Add
m_fwdPower and m_swr fields to TunerModel
- Parse
fwd= and swr= in TunerModel::applyStatus() and the direct connection handler
- Emit a signal (e.g.
metersChanged(float fwd, float swr)) when values update
- Wire
TunerModel::metersChanged → TunerApplet::updateMeters() in MainWindow
- This replaces or supplements the current
MeterModel::tgxlMetersChanged path
Environment
- FLEX-8600 with PGXL and TGXL 3x1 (firmware 1.2.17)
- AetherSDR v0.7.18.2 on Windows 11
References
- FlexRadio Community: TGXL integration with SmartSDR v3.9.18 introduced direct metering
- 4O3A Tuner Genius XL User Guide, firmware v1.2.17
- SmartSDR gets TGXL power/SWR from the TGXL directly, not through VITA-49
Problem
The TunerApplet Fwd Power and SWR gauges always display 0 when a TGXL (Tuner Genius XL) is connected, even during active TX with a tune carrier.
Root Cause
The TGXL reports forward power and SWR via its direct TCP connection (port 9010), not through the radio's VITA-49 meter stream (PCC 0x8002). SmartSDR v3.9.18+ gets TGXL power/SWR from the TGXL directly — this was a key change in TGXL firmware v1.2.17.
AetherSDR's
TgxlConnectionalready polls status every 1 second and receivesfwd=andswr=fields in the response KV pairs. However,TunerModelonly reads relay positions (relayC1,relayL,relayC2) and antenna state (antA) — it ignores thefwdandswrfields entirely.The alternative path through
MeterModel(VITA-49 AMP meters disambiguated by handle) appears to not receive TGXL-specific meter definitions from the radio in this configuration (FLEX-8600 + PGXL + TGXL 3x1).Code Path Trace
TgxlConnection::pollStatus()sends"status"command on port 9010 every 1 secondfwd=,swr=, relay positions, etc.TunerModel::setDirectConnection()handlesstateUpdatedandstatusUpdatedsignalsrelayC1,relayL,relayC2,antA,tuning,operate,bypassfwdandswrfields are in the KV map but never extractedFix Approach
m_fwdPowerandm_swrfields toTunerModelfwd=andswr=inTunerModel::applyStatus()and the direct connection handlermetersChanged(float fwd, float swr)) when values updateTunerModel::metersChanged→TunerApplet::updateMeters()in MainWindowMeterModel::tgxlMetersChangedpathEnvironment
References