Skip to content

Commit e153310

Browse files
phobos-Ivan Efimov
authored andcommitted
VtxDevice over msp - FULL PR 11705 as of 08/19/2022
1 parent 36efba7 commit e153310

31 files changed

+1037
-38
lines changed

docs/Serial.md

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -100,27 +100,30 @@ Other devices can be added starting from id 50.
100100

101101
### 2. Serial Port Function
102102

103-
| Function | Value |
104-
| ---------------------------- | ----- |
105-
| FUNCTION_NONE | 0 |
106-
| FUNCTION_MSP | 1 |
107-
| FUNCTION_GPS | 2 |
108-
| FUNCTION_TELEMETRY_FRSKY_HUB | 4 |
109-
| FUNCTION_TELEMETRY_HOTT | 8 |
110-
| FUNCTION_TELEMETRY_LTM | 16 |
111-
| FUNCTION_TELEMETRY_SMARTPORT | 32 |
112-
| FUNCTION_RX_SERIAL | 64 |
113-
| FUNCTION_BLACKBOX | 128 |
114-
| FUNCTION_TELEMETRY_MAVLINK | 512 |
115-
| FUNCTION_ESC_SENSOR | 1024 |
116-
| FUNCTION_VTX_SMARTAUDIO | 2048 |
117-
| FUNCTION_TELEMETRY_IBUS | 4096 |
118-
| FUNCTION_VTX_TRAMP | 8192 |
119-
| FUNCTION_RCDEVICE | 16384 |
120-
| FUNCTION_LIDAR_TF | 32768 |
121-
| FUNCTION_FRSKY_OSD | 65536 |
103+
| Function | Value | Bit |
104+
| ---------------------------- | ------ | --- |
105+
| FUNCTION_NONE | 0 | 0 |
106+
| FUNCTION_MSP | 1 | 1 << 0 |
107+
| FUNCTION_GPS | 2 | 1 << 1 |
108+
| FUNCTION_TELEMETRY_FRSKY_HUB | 4 | 1 << 2 |
109+
| FUNCTION_TELEMETRY_HOTT | 8 | 1 << 3 |
110+
| FUNCTION_TELEMETRY_LTM | 16 | 1 << 4 |
111+
| FUNCTION_TELEMETRY_SMARTPORT | 32 | 1 << 5 |
112+
| FUNCTION_RX_SERIAL | 64 | 1 << 6 |
113+
| FUNCTION_BLACKBOX | 128 | 1 << 7 |
114+
| NOT USED | 256 | 1 << 8 |
115+
| FUNCTION_TELEMETRY_MAVLINK | 512 | 1 << 9 |
116+
| FUNCTION_ESC_SENSOR | 1024 | 1 << 10 |
117+
| FUNCTION_VTX_SMARTAUDIO | 2048 | 1 << 11 |
118+
| FUNCTION_TELEMETRY_IBUS | 4096 | 1 << 12 |
119+
| FUNCTION_VTX_TRAMP | 8192 | 1 << 13 |
120+
| FUNCTION_RCDEVICE | 16384 | 1 << 14 |
121+
| FUNCTION_LIDAR_TF | 32768 | 1 << 15 |
122+
| FUNCTION_FRSKY_OSD | 65536 | 1 << 16 |
123+
| FUNCTION_VTX_MSP | 131072 | 1 << 17 |
122124

123125
Note: `FUNCTION_FRSKY_OSD` = `(1<<16)` requires 17 bits.
126+
Note2: We can use up to 32 bits (1<<32) here.
124127

125128
### 3. MSP Baudrates
126129

make/source.mk

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,8 @@ COMMON_SRC = \
201201
io/vtx_smartaudio.c \
202202
io/vtx_tramp.c \
203203
io/vtx_control.c \
204+
io/vtx_msp.c \
205+
cms/cms_menu_vtx_msp.c
204206

205207
COMMON_DEVICE_SRC = \
206208
$(CMSIS_SRC) \
@@ -362,7 +364,9 @@ SIZE_OPTIMISED_SRC := $(SIZE_OPTIMISED_SRC) \
362364
osd/osd.c \
363365
osd/osd_elements.c \
364366
osd/osd_warnings.c \
365-
rx/rx_bind.c
367+
rx/rx_bind.c \
368+
io/vtx_msp.c \
369+
cms/cms_menu_vtx_msp.c
366370

367371
# Gyro driver files that only contain initialization and configuration code - not runtime code
368372
SIZE_OPTIMISED_SRC := $(SIZE_OPTIMISED_SRC) \

src/main/build/debug.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,5 +99,6 @@ const char * const debugModeNames[DEBUG_COUNT] = {
9999
"TIMING_ACCURACY",
100100
"RX_EXPRESSLRS_SPI",
101101
"RX_EXPRESSLRS_PHASELOCK",
102-
"RX_STATE_TIME"
102+
"RX_STATE_TIME",
103+
"VTX_MSP"
103104
};

src/main/build/debug.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ typedef enum {
9898
DEBUG_RX_EXPRESSLRS_SPI,
9999
DEBUG_RX_EXPRESSLRS_PHASELOCK,
100100
DEBUG_RX_STATE_TIME,
101+
DEBUG_VTX_MSP,
101102
DEBUG_COUNT
102103
} debugType_e;
103104

src/main/cli/settings.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@
8888
#include "pg/max7456.h"
8989
#include "pg/mco.h"
9090
#include "pg/motor.h"
91+
#include "pg/msp.h"
9192
#include "pg/pg.h"
9293
#include "pg/pg_ids.h"
9394
#include "pg/pinio.h"
@@ -1644,6 +1645,8 @@ const clivalue_t valueTable[] = {
16441645
{ "scheduler_relax_rx", VAR_UINT16 | HARDWARE_VALUE, .config.minmaxUnsigned = { 0, 500 }, PG_SCHEDULER_CONFIG, PG_ARRAY_ELEMENT_OFFSET(schedulerConfig_t, 0, rxRelaxDeterminism) },
16451646
{ "scheduler_relax_osd", VAR_UINT16 | HARDWARE_VALUE, .config.minmaxUnsigned = { 0, 500 }, PG_SCHEDULER_CONFIG, PG_ARRAY_ELEMENT_OFFSET(schedulerConfig_t, 0, osdRelaxDeterminism) },
16461647

1648+
{ "serialmsp_halfduplex", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_MSP_CONFIG, offsetof(mspConfig_t, halfDuplex) },
1649+
16471650
// PG_TIMECONFIG
16481651
#ifdef USE_RTC_TIME
16491652
{ "timezone_offset_minutes", VAR_INT16 | MASTER_VALUE, .config.minmax = { TIMEZONE_OFFSET_MINUTES_MIN, TIMEZONE_OFFSET_MINUTES_MAX }, PG_TIME_CONFIG, offsetof(timeConfig_t, tz_offsetMinutes) },

src/main/cms/cms_menu_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ static const OSD_Entry menuFeaturesEntries[] =
8282
{"BLACKBOX", OME_Submenu, cmsMenuChange, &cmsx_menuBlackbox},
8383
#endif
8484
#if defined(USE_VTX_CONTROL)
85-
#if defined(USE_VTX_RTC6705) || defined(USE_VTX_SMARTAUDIO) || defined(USE_VTX_TRAMP)
85+
#if defined(USE_VTX_RTC6705) || defined(USE_VTX_SMARTAUDIO) || defined(USE_VTX_TRAMP) || defined(USE_VTX_MSP)
8686
{"VTX", OME_Funcall, cmsSelectVtx, NULL},
8787
#endif
8888
#endif // VTX_CONTROL

src/main/cms/cms_menu_vtx_common.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,15 @@
2424

2525
#include "platform.h"
2626

27-
#if defined(USE_CMS) && defined(USE_VTX_CONTROL) && (defined(USE_VTX_TRAMP) || defined(USE_VTX_SMARTAUDIO) || defined(USE_VTX_RTC6705))
27+
#if defined(USE_CMS) && defined(USE_VTX_CONTROL) && (defined(USE_VTX_TRAMP) || defined(USE_VTX_SMARTAUDIO) || defined(USE_VTX_RTC6705) || defined(USE_VTX_MSP))
2828

2929
#include "common/printf.h"
3030

3131
#include "cms/cms.h"
3232
#include "cms/cms_menu_vtx_rtc6705.h"
3333
#include "cms/cms_menu_vtx_smartaudio.h"
3434
#include "cms/cms_menu_vtx_tramp.h"
35+
#include "cms/cms_menu_vtx_msp.h"
3536
#include "cms/cms_types.h"
3637

3738
#include "drivers/vtx_common.h"
@@ -118,7 +119,12 @@ const void *cmsSelectVtx(displayPort_t *pDisplay, const void *ptr)
118119

119120
break;
120121
#endif
122+
#if defined(USE_VTX_MSP)
123+
case VTXDEV_MSP:
124+
cmsMenuChange(pDisplay, &cmsx_menuVtxMsp);
121125

126+
break;
127+
#endif
122128
default:
123129
cmsMenuChange(pDisplay, &cmsx_menuVtxError);
124130

0 commit comments

Comments
 (0)