[feat](trx-rs): add VDES hard-decision FEC stage

Improve the VDES decoder with sync/rotation metadata and a first hard-decision rate-1/2 Viterbi stage after deinterleaving, then surface the extra lock state in the VDES frontend. Also fix the strict clippy findings in AIS, frontend bookmarks, and the server audio stack signature.

Co-authored-by: OpenAI Codex <codex@openai.com>
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com>
This commit is contained in:
2026-03-03 00:39:41 +01:00
parent 6e558303a7
commit 5e84fe2a82
6 changed files with 271 additions and 52 deletions
+10
View File
@@ -84,6 +84,16 @@ pub struct VdesMessage {
pub callsign: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub destination: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub link_id: Option<u8>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_score: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_errors: Option<u8>,
#[serde(skip_serializing_if = "Option::is_none")]
pub phase_rotation: Option<u8>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fec_state: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]