Dashboard Overlapping Telemetry Resolution Spec¶
Purpose¶
This spec defines how dashboard processing shall interpret and present overlapping telemetry data carried by the following message types within a single WSPR window:
RegularType1(RT1)BasicTelemetry(BT)ExpandedBasicTelemetry(EBT)HighResLocation(HRL)
It defines: - slot admissibility - per-type message selection - GPS-validity rules - field-family precedence - raw and synthesized table columns - display styling - chart/source usability rules
Definitions¶
Window: One processing interval containing slots0..4. All rules in this spec apply only within one window at a time.Slot: A transmission position within a window. Higher slot number means more recent within that same window.Candidate: A decoded message instance that survived earlier filtering stages.Selected message: The one message chosen for a given message type within the current window.Field family: A logical data family whose value may be carried by more than one message type. Families in this spec areLocation2D,Temperature,Voltage,Altitude, andSpeed.GPS-derived data: Data whose usability depends on GPS validity. In this spec,Location2DandAltitudeare GPS-derived.Usable: Eligible to participate in resolved-value selection.Resolved column: A synthesized output column representing the final chosen value for a field family, with no message-type prefix.Raw column: A per-message-type output column representing decoded data from that message type, with that type's prefix.Dimmed: Styled to indicate GPS-derived data exists but is unusable.Italicized: Styled to indicate a value is valid raw data but was not selected because a better value in the same family was chosen.Reference grid: The 4-character Maidenhead grid carried byRT1, used as the base for BT, EBT, and HRL location refinement.Location-bearing message: A message type that can contribute toLocation2D:RT1,BT,EBT,HRL.
Preconditions¶
Earlier processing stages are assumed to guarantee:
- each slot contains either 0 or 1 surviving candidate
- invalid duplicates within a slot have already been eliminated
This spec does not define that earlier filtering logic; it defines behavior after that point.
Allowed Slots¶
RT1may appear only in slot0BTmay appear only in slot1EBTmay appear only in slots1..4HRLmay appear only in slots1..4
A message appearing in a disallowed slot is invalid for this spec and should be rejected upstream or by spec-validation logic.
Per-Type Selection¶
Within a window, define:
- RT1Selected: the RT1 in slot 0, if present
- BTSelected: the BT in slot 1, if present
- EBTSelected: the highest-slot EBT, if present
- HRLSelected: the highest-slot HRL, if present
If more than one message of a type exists in allowed slots, the highest slot wins for that type.
Message-Local GPS Validity¶
GPS validity is local to the message being interpreted. One message's GPS validity does not invalidate or validate another message's raw data.
Rules:
- BT.gpsValid = 1 means BT GPS-derived data is usable
- BT.gpsValid = 0 means BT GPS-derived data is unusable
- EBT.gpsValid = 1 means EBT GPS-derived data is usable
- EBT.gpsValid = 0 means EBT GPS-derived data is unusable
- HRL.reference = 1 means HRL location data is usable and implies GPS-valid
- HRL.reference != 1 means HRL location data is unusable
Temperature, Voltage, and Speed are not invalidated by gpsValid.
RT1 Location Rule¶
RT1Selected.grid4 is both:
- a valid coarse location by itself, and
- the reference base needed to refine BT, EBT, and HRL location data
Rules:
- If RT1Selected is the only location-bearing message present in the window, it may populate resolved location by itself.
- If any of BTSelected, EBTSelected, or HRLSelected exist, then RT1Selected serves only as the reference base for those selected messages and is not itself a resolved location source.
- BT, EBT, and HRL location refinement requires RT1Selected.grid4. Without RT1Selected, those message types may still expose non-location raw fields, but cannot produce usable lat/lng.
Field Families¶
The overlapping families are:
Location2DRT1:grid4BT:grid56/grid6EBT:latitudeIdx/longitudeIdx-
HRL:reference/latitudeIdx/longitudeIdx -
Temperature BT: Celsius-
EBT: Fahrenheit -
Voltage BT-
EBT -
Altitude BT: meters-
EBT: feet -
Speed BT: knots
Usability By Family¶
A source is usable for a family if:
Location2DRT1: usable ifRT1Selectedexists and no selected BT/EBT/HRL existsBT: usable ifBTSelectedexists,BTSelected.gpsValid = 1, andRT1SelectedexistsEBT: usable ifEBTSelectedexists,EBTSelected.gpsValid = 1, andRT1Selectedexists-
HRL: usable ifHRLSelectedexists,HRLSelected.reference = 1, andRT1Selectedexists -
Altitude BT: usable ifBTSelectedexists andBTSelected.gpsValid = 1-
EBT: usable ifEBTSelectedexists andEBTSelected.gpsValid = 1 -
Temperature -
usable if present in selected BT or EBT
-
Voltage -
usable if present in selected BT or EBT
-
Speed - usable if
BTSelectedexists
Resolved Selection Rule¶
Selection is by field family, not by message.
For each field family, choose the most recent usable source among the selected messages that carry that family.
A newer message supersedes older data only for families it carries.
Resolved precedence:
- Location2D: latest usable among HRLSelected, EBTSelected, BTSelected, else RT1Selected alone if no selected BT/EBT/HRL exists
- Temperature: latest among EBTSelected, BTSelected
- Voltage: latest among EBTSelected, BTSelected
- Altitude: latest usable among EBTSelected, BTSelected
- Speed: BTSelected only
A newer unusable source does not block fallback to an older usable source in the same family.
Examples:
- newer EBT.gpsValid=0 does not block older valid BT from supplying Location2D or Altitude
- newer EBT.gpsValid=0 still may supply Temperature and Voltage
Raw Output Columns¶
Each selected message type expands into its own prefixed columns.
BT columns use prefix Bt:
- BtGpsValid
- BtGrid56
- BtGrid6
- BtLat
- BtLng
- BtTempC
- BtTempF
- BtVoltage
- BtAltM
- BtAltFt
- BtKnots
- BtKPH
- BtMPH
EBT columns use prefix Ebt:
- EbtGpsValid
- EbtLatitudeIdx
- EbtLongitudeIdx
- EbtLat
- EbtLng
- EbtTempF
- EbtTempC
- EbtVoltage
- EbtAltFt
- EbtAltM
HRL columns use prefix HiRes:
- HiResReference
- HiResLatitudeIdx
- HiResLongitudeIdx
- HiResLat
- HiResLng
RT1 columns use prefix Reg:
- RegGrid
- RegLat
- RegLng
RegLat and RegLng are always present when RT1Selected exists.
Raw Column Derivation Rules¶
BtGrid6is derived fromRT1Selected.grid4 + BTSelected.grid56only ifBTSelected.gpsValid = 1andRT1SelectedexistsBtLat/BtLngare derived fromBtGrid6only whenBtGrid6is usableEbtLat/EbtLngare derived only ifEBTSelected.gpsValid = 1andRT1SelectedexistsHiResLat/HiResLngare derived only ifHRLSelected.reference = 1andRT1SelectedexistsRegLat/RegLngare derived fromRT1Selected.grid4wheneverRT1Selectedexists
If derivation requirements are not met, the corresponding derived raw columns are null.
Resolved Output Columns¶
Resolved columns have no prefix:
LatLngTempFTempCVoltageAltFtAltMKnotsKPHMPH
Resolved values are produced from the selected source for that family:
- resolved temperature is emitted in both F and C
- resolved altitude is emitted in both Ft and M
- resolved speed is emitted in Knots, KPH, and MPH
Lat and Lng are the canonical 2D location outputs and replace synthesized grid as the primary downstream location source.
Precision Rules¶
Displayed decimal places of Lat and Lng must indicate source precision.
Precision should be source-sensitive:
- RT1-only location: coarse precision
- BT-derived location: precision consistent with grid6 resolution
- EBT-derived location: precision consistent with EBT index resolution
- HRL-derived location: precision consistent with HRL index resolution
Implementation may use a per-source precision tag internally, but displayed values must preserve visible precision differences between location sources.
Styling Rules¶
Apply styling per raw value or per raw family-specific cell group, not per whole message.
- Dimmed:
- apply to raw GPS-derived values that are present but unusable due to message-local GPS invalidity or equivalent invalid location state
- dimmed raw GPS-derived values must not be used for resolved synthesis
-
dimmed raw GPS-derived values must not be used for charting or derived map/location output
-
Italicized:
-
apply to raw values that are valid but not selected because a better value in the same family was chosen from a more recent usable source
-
If both conditions apply, apply both styles
Examples:
- BtTempC is not dimmed by BtGpsValid=0
- BtLat/BtLng are dimmed when BtGpsValid=0
- older valid BtLat/BtLng become italic if newer valid EbtLat/EbtLng or HiResLat/HiResLng is selected instead
Charting Rules¶
- Resolved columns are the default preferred source for charting and downstream analytics
- Raw GPS-derived columns that are dimmed are not chartable
- Raw non-GPS columns may remain chartable
- Raw superseded columns remain available for explicit inspection, but are not charted by default when a resolved equivalent exists
Null / Missing Behavior¶
- If no usable source exists for a resolved family, that resolved column is null
- If a selected message exists but cannot derive location because
RT1Selectedis missing, its non-location raw fields still appear, but its derived lat/lng raw columns are null - If only
RT1Selectedexists, resolvedLat/Lngmay be produced from RT1 alone
Implementation Partitioning¶
This spec defines behavior, not exact file placement. A conforming implementation should ensure: - slot/type admissibility is enforced - per-type selection occurs before family resolution - family resolution is independent per family - raw columns and resolved columns follow the rules above