mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-17 21:35:44 +03:00
Add MSP API features for OSD stat screen toggling
This commit is contained in:
parent
d83f0ddf5e
commit
5f4a72ad5b
1 changed files with 16 additions and 5 deletions
|
@ -775,6 +775,9 @@ static bool mspCommonProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProce
|
||||||
for (int i = 0; i < OSD_ITEM_COUNT; i++) {
|
for (int i = 0; i < OSD_ITEM_COUNT; i++) {
|
||||||
sbufWriteU16(dst, osdConfig()->item_pos[i]);
|
sbufWriteU16(dst, osdConfig()->item_pos[i]);
|
||||||
}
|
}
|
||||||
|
for (int i = 0; i < OSD_STAT_COUNT; i++ ) {
|
||||||
|
sbufWriteU8(dst, osdConfig()->enabled_stats[i]);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -2039,8 +2042,9 @@ static mspResult_e mspCommonProcessInCommand(uint8_t cmdMSP, sbuf_t *src)
|
||||||
case MSP_SET_OSD_CONFIG:
|
case MSP_SET_OSD_CONFIG:
|
||||||
{
|
{
|
||||||
const uint8_t addr = sbufReadU8(src);
|
const uint8_t addr = sbufReadU8(src);
|
||||||
// set all the other settings
|
|
||||||
if ((int8_t)addr == -1) {
|
if ((int8_t)addr == -1) {
|
||||||
|
/* Set general OSD settings */
|
||||||
#ifdef USE_MAX7456
|
#ifdef USE_MAX7456
|
||||||
vcdProfileMutable()->video_system = sbufReadU8(src);
|
vcdProfileMutable()->video_system = sbufReadU8(src);
|
||||||
#else
|
#else
|
||||||
|
@ -2055,10 +2059,17 @@ static mspResult_e mspCommonProcessInCommand(uint8_t cmdMSP, sbuf_t *src)
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
#if defined(OSD)
|
#if defined(OSD)
|
||||||
// set a position setting
|
const uint16_t value = sbufReadU16(src);
|
||||||
const uint16_t pos = sbufReadU16(src);
|
|
||||||
if (addr < OSD_ITEM_COUNT) {
|
/* Get screen index, 0 is post flight statsitsics, 1 and above are in flight OSD screens */
|
||||||
osdConfigMutable()->item_pos[addr] = pos;
|
const uint8_t screen = (sbufBytesRemaining(src) >= 1) ? sbufReadU8(src) : 1;
|
||||||
|
|
||||||
|
if (screen == 0 && addr < OSD_STAT_COUNT) {
|
||||||
|
/* Set statistic item enable */
|
||||||
|
osdConfigMutable()->enabled_stats[addr] = value;
|
||||||
|
} else if (addr < OSD_ITEM_COUNT) {
|
||||||
|
/* Set element positions */
|
||||||
|
osdConfigMutable()->item_pos[addr] = value;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
return MSP_RESULT_ERROR;
|
return MSP_RESULT_ERROR;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue