hilink: resync MSP VTX table after FC restart

This commit is contained in:
2026-09-28 13:30:31 +02:00
parent c1886a666c
commit 9b1f96bf92
@@ -1,5 +1,5 @@
diff --git a/osd.c b/osd.c
index a8b756e..49673da 100644
index a8b756e..ac9adf5 100644
--- a/osd.c
+++ b/osd.c
@@ -190,6 +190,8 @@ extern bool vtxMenuActive;
@@ -11,9 +11,22 @@ index a8b756e..49673da 100644
extern bool DrawOSD;
// SRT/OSD
@@ -960,48 +962,25 @@ static void rx_msp_callback(msp_msg_t *msp_message) {
@@ -959,49 +961,38 @@ static void rx_msp_callback(msp_msg_t *msp_message) {
break;
}
+ case MSP_SET_VTX_CONFIG: {
+ // A new FC configuration frame is our lifecycle marker: it occurs after
+ // FC boot and after a Configurator save. Require a fresh short stream of
+ // VTX state frames before re-advertising the read-only table.
+ mspVtxConfigFramesReceived = 0;
+ mspVtxTableResentAfterFcTraffic = false;
+ if (verbose) {
+ printf("mspVTX: FC configuration changed; table sync re-armed\n");
+ }
+ break;
+ }
+
case MSP_GET_VTX_CONFIG: {
- if (vtxInitDone) {
+ // The FC publishes its VTX state only after its MSP descriptor is active.