hilink: serialize MSP VTX tables correctly

This commit is contained in:
2026-09-28 10:16:51 +02:00
parent 847f0bb157
commit 45c0c6b795
@@ -58,10 +58,43 @@ index a8b756e..eefb4d6 100644
}
diff --git a/osd/msp/msp.c b/osd/msp/msp.c
index b1a538c..bdb443e 100644
index b1a538c..bb8c44e 100644
--- a/osd/msp/msp.c
+++ b/osd/msp/msp.c
@@ -144,22 +144,26 @@ void setVtxTablePowerLevel(int serial_fd, uint8_t idx) {
@@ -69,7 +69,7 @@ void wipeVtxTable(int serial_fd, int band, int channel) {
uint8_t buffer[256];
construct_msp_command(buffer, MSP_SET_VTX_CONFIG, payload, sizeof(payload), MSP_OUTBOUND);
- write(serial_fd, &buffer, sizeof(buffer));
+ write(serial_fd, buffer, sizeof(payload) + 6);
// now prepare the table
payload[0] = 0; // idx LSB
@@ -89,7 +89,7 @@ void wipeVtxTable(int serial_fd, int band, int channel) {
payload[14] = 0; // vtxtable should be cleared
construct_msp_command(buffer, MSP_SET_VTX_CONFIG, payload, sizeof(payload), MSP_OUTBOUND);
- write(serial_fd, &buffer, sizeof(buffer));
+ write(serial_fd, buffer, sizeof(payload) + 6);
}
void setVtxTableBand(int serial_fd, uint8_t band) {
@@ -119,7 +119,7 @@ void setVtxTableBand(int serial_fd, uint8_t band) {
}
construct_msp_command(buffer, MSP_SET_VTXTABLE_BAND, payload2, sizeof(payload2), MSP_OUTBOUND);
- write(serial_fd, &buffer, sizeof(buffer));
+ write(serial_fd, buffer, sizeof(payload2) + 6);
}
void setVtxTablePowerLevel(int serial_fd, uint8_t idx) {
@@ -139,27 +139,31 @@ void setVtxTablePowerLevel(int serial_fd, uint8_t idx) {
construct_msp_command(
buffer, MSP_SET_VTXTABLE_POWERLEVEL, payload2, sizeof(payload2), MSP_OUTBOUND);
- write(serial_fd, &buffer, sizeof(buffer));
+ write(serial_fd, buffer, sizeof(payload2) + 6);
}
void msp_set_vtx_config(int serial_fd) {
@@ -95,6 +128,24 @@ index b1a538c..bdb443e 100644
}
}
diff --git a/osd/msp/msp.h b/osd/msp/msp.h
index 3e60a31..772aaed 100644
--- a/osd/msp/msp.h
+++ b/osd/msp/msp.h
@@ -40,10 +40,10 @@
// wfb-ng list
#define CHANNEL_COUNT 8
-#define BAND_COUNT 8
+#define BAND_COUNT 7
#define IS_FACTORY_BAND 0
-#define FREQ_TABLE_SIZE 64
-#define FREQ_LABEL_SIZE 64
+#define FREQ_TABLE_SIZE 56
+#define FREQ_LABEL_SIZE 56
#define MSP_REBOOT 68 // in message reboot settings
diff --git a/osd/util/interface.c b/osd/util/interface.c
index 089fdc2..49d60fc 100644
--- a/osd/util/interface.c