[feat](trx-wxsat): add Meteor-M LRPT decoder and Weather Satellites frontend panel

Restructure trx-wxsat into noaa/ (APT) and lrpt/ (Meteor-M LRPT) submodules
with shared crate base. Add QPSK demodulator, CCSDS CADU framer, MCU channel
assembler for LRPT. Wire LRPT through full stack (core types, protocol, server
decoder task, client). Add Weather Satellites sub-tab in Digital Modes with
toggle buttons for NOAA APT and Meteor LRPT, descriptions, and image history.

https://claude.ai/code/session_01JA13DHuzuHUL4nSBBRU83f
Signed-off-by: Claude <noreply@anthropic.com>
This commit is contained in:
Claude
2026-03-28 07:13:05 +00:00
committed by Stan Grams
parent d26ef6ca81
commit 1a3b815ed8
29 changed files with 1526 additions and 158 deletions
+1
View File
@@ -456,6 +456,7 @@ mod tests {
ft2_decode_enabled: false,
wspr_decode_enabled: false,
wxsat_decode_enabled: false,
lrpt_decode_enabled: false,
cw_auto: false,
cw_wpm: 0,
cw_tone_hz: 0,
+16
View File
@@ -54,6 +54,14 @@ pub fn client_command_to_rig(cmd: ClientCommand) -> RigCommand {
ClientCommand::ResetFt4Decoder => RigCommand::ResetFt4Decoder,
ClientCommand::ResetFt2Decoder => RigCommand::ResetFt2Decoder,
ClientCommand::ResetWsprDecoder => RigCommand::ResetWsprDecoder,
ClientCommand::SetWxsatDecodeEnabled { enabled } => {
RigCommand::SetWxsatDecodeEnabled(enabled)
}
ClientCommand::SetLrptDecodeEnabled { enabled } => {
RigCommand::SetLrptDecodeEnabled(enabled)
}
ClientCommand::ResetWxsatDecoder => RigCommand::ResetWxsatDecoder,
ClientCommand::ResetLrptDecoder => RigCommand::ResetLrptDecoder,
ClientCommand::SetBandwidth { bandwidth_hz } => RigCommand::SetBandwidth(bandwidth_hz),
ClientCommand::SetSdrGain { gain_db } => RigCommand::SetSdrGain(gain_db),
ClientCommand::SetSdrLnaGain { gain_db } => RigCommand::SetSdrLnaGain(gain_db),
@@ -122,6 +130,14 @@ pub fn rig_command_to_client(cmd: RigCommand) -> ClientCommand {
RigCommand::ResetFt4Decoder => ClientCommand::ResetFt4Decoder,
RigCommand::ResetFt2Decoder => ClientCommand::ResetFt2Decoder,
RigCommand::ResetWsprDecoder => ClientCommand::ResetWsprDecoder,
RigCommand::SetWxsatDecodeEnabled(enabled) => {
ClientCommand::SetWxsatDecodeEnabled { enabled }
}
RigCommand::SetLrptDecodeEnabled(enabled) => {
ClientCommand::SetLrptDecodeEnabled { enabled }
}
RigCommand::ResetWxsatDecoder => ClientCommand::ResetWxsatDecoder,
RigCommand::ResetLrptDecoder => ClientCommand::ResetLrptDecoder,
RigCommand::SetBandwidth(bandwidth_hz) => ClientCommand::SetBandwidth { bandwidth_hz },
RigCommand::SetSdrGain(gain_db) => ClientCommand::SetSdrGain { gain_db },
RigCommand::SetSdrLnaGain(gain_db) => ClientCommand::SetSdrLnaGain { gain_db },
+4
View File
@@ -36,6 +36,8 @@ pub enum ClientCommand {
SetFt4DecodeEnabled { enabled: bool },
SetFt2DecodeEnabled { enabled: bool },
SetWsprDecodeEnabled { enabled: bool },
SetWxsatDecodeEnabled { enabled: bool },
SetLrptDecodeEnabled { enabled: bool },
ResetAprsDecoder,
ResetHfAprsDecoder,
ResetCwDecoder,
@@ -43,6 +45,8 @@ pub enum ClientCommand {
ResetFt4Decoder,
ResetFt2Decoder,
ResetWsprDecoder,
ResetWxsatDecoder,
ResetLrptDecoder,
SetBandwidth { bandwidth_hz: u32 },
SetSdrGain { gain_db: f64 },
SetSdrLnaGain { gain_db: f64 },