From 099e0a60647e66ebcb7f248256d3f353e7f61dd3 Mon Sep 17 00:00:00 2001 From: Michael Keller Date: Tue, 14 Jan 2020 13:53:15 +1300 Subject: [PATCH] Added OSD status to CLI 'status' output. --- src/main/cli/cli.c | 7 +++++++ src/main/cli/settings.c | 2 +- src/main/cli/settings.h | 2 ++ src/main/io/displayport_crsf.h | 3 +-- src/main/io/displayport_frsky_osd.h | 3 +-- src/main/io/displayport_msp.h | 4 +++- src/main/osd/osd.h | 7 ++++--- src/test/unit/cli_unittest.cc | 8 +++++--- 8 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/main/cli/cli.c b/src/main/cli/cli.c index 9b89853ef..8ebf10de0 100644 --- a/src/main/cli/cli.c +++ b/src/main/cli/cli.c @@ -4648,6 +4648,13 @@ static void cliStatus(char *cmdline) cliPrintLinefeed(); #endif /* USE_SENSOR_NAMES */ +#if defined(USE_OSD) + osdDisplayPortDevice_e displayPortDevice; + osdGetDisplayPort(&displayPortDevice); + + cliPrintLinef("OSD: %s", lookupTableOsdDisplayPortDevice[displayPortDevice]); +#endif + // Uptime and wall clock cliPrintf("System Uptime: %d seconds", millis() / 1000); diff --git a/src/main/cli/settings.c b/src/main/cli/settings.c index 28a8e3db4..360eab87b 100644 --- a/src/main/cli/settings.c +++ b/src/main/cli/settings.c @@ -483,7 +483,7 @@ static const char* const lookupTableDshotBitbangedTimer[] = { "AUTO", "TIM1", "TIM8" }; -static const char * const lookupTableOsdDisplayPortDevice[] = { +const char * const lookupTableOsdDisplayPortDevice[] = { "NONE", "AUTO", "MAX7456", "MSP", "FRSKYOSD" }; diff --git a/src/main/cli/settings.h b/src/main/cli/settings.h index 6e3ac466b..0f0718a2d 100644 --- a/src/main/cli/settings.h +++ b/src/main/cli/settings.h @@ -256,3 +256,5 @@ extern const char * const lookupTableRescueAltitudeMode[]; extern const char * const lookupTableItermRelax[]; extern const char * const lookupTableItermRelaxType[]; + +extern const char * const lookupTableOsdDisplayPortDevice[]; diff --git a/src/main/io/displayport_crsf.h b/src/main/io/displayport_crsf.h index 34b936d57..9e2535f93 100644 --- a/src/main/io/displayport_crsf.h +++ b/src/main/io/displayport_crsf.h @@ -34,8 +34,7 @@ typedef struct crsfDisplayPortScreen_s { bool reset; } crsfDisplayPortScreen_t; -struct displayPort_s; -struct displayPort_s *displayPortCrsfInit(void); +displayPort_t *displayPortCrsfInit(void); crsfDisplayPortScreen_t *crsfDisplayPortScreen(void); void crsfDisplayPortMenuOpen(void); void crsfDisplayPortMenuExit(void); diff --git a/src/main/io/displayport_frsky_osd.h b/src/main/io/displayport_frsky_osd.h index fc004f761..3c8c5ef7d 100644 --- a/src/main/io/displayport_frsky_osd.h +++ b/src/main/io/displayport_frsky_osd.h @@ -19,8 +19,7 @@ */ #pragma once +#include "drivers/display.h" #include "drivers/osd.h" -typedef struct displayPort_s displayPort_t; - displayPort_t *frskyOsdDisplayPortInit(const videoSystem_e videoSystem); diff --git a/src/main/io/displayport_msp.h b/src/main/io/displayport_msp.h index cbe7283bc..720774398 100644 --- a/src/main/io/displayport_msp.h +++ b/src/main/io/displayport_msp.h @@ -20,6 +20,8 @@ #pragma once +#include "drivers/display.h" + #include "pg/displayport_profiles.h" -struct displayPort_s *displayPortMspInit(void); +displayPort_t *displayPortMspInit(void); diff --git a/src/main/osd/osd.h b/src/main/osd/osd.h index b34d84490..1ef62626c 100644 --- a/src/main/osd/osd.h +++ b/src/main/osd/osd.h @@ -22,6 +22,8 @@ #include "common/time.h" +#include "drivers/display.h" + #include "pg/pg.h" #include "sensors/esc_sensor.h" @@ -319,8 +321,7 @@ extern float osdGForce; extern escSensorData_t *osdEscDataCombined; #endif -struct displayPort_s; -void osdInit(struct displayPort_s *osdDisplayPort, osdDisplayPortDevice_e displayPortDevice); +void osdInit(displayPort_t *osdDisplayPort, osdDisplayPortDevice_e displayPortDevice); bool osdInitialized(void); void osdUpdate(timeUs_t currentTimeUs); void osdStatSetState(uint8_t statIndex, bool enabled); @@ -336,4 +337,4 @@ bool osdElementVisible(uint16_t value); bool osdGetVisualBeeperState(void); statistic_t *osdGetStats(void); bool osdNeedsAccelerometer(void); -struct displayPort_s *osdGetDisplayPort(osdDisplayPortDevice_e *displayPortDevice); +displayPort_t *osdGetDisplayPort(osdDisplayPortDevice_e *displayPortDevice); diff --git a/src/test/unit/cli_unittest.cc b/src/test/unit/cli_unittest.cc index 14b2ae7c5..8606a2223 100644 --- a/src/test/unit/cli_unittest.cc +++ b/src/test/unit/cli_unittest.cc @@ -65,6 +65,7 @@ extern "C" { }; const uint16_t valueTableEntryCount = ARRAYLEN(valueTable); const lookupTableEntry_t lookupTables[] = {}; + const char * const lookupTableOsdDisplayPortDevice[] = {}; PG_REGISTER(osdConfig_t, osdConfig, PG_OSD_CONFIG, 0); @@ -342,9 +343,9 @@ void serialSetCtrlLineState(serialPort_t *, uint16_t ) {} void serialSetBaudRateCb(serialPort_t *, void (*)(serialPort_t *context, uint32_t baud), serialPort_t *) {} -char *getBoardName(void) { return NULL; }; -char *getManufacturerId(void) { return NULL; }; -bool boardInformationIsSet(void) { return true; }; +char *getBoardName(void) { return NULL; } +char *getManufacturerId(void) { return NULL; } +bool boardInformationIsSet(void) { return true; } bool setBoardName(char *newBoardName) { UNUSED(newBoardName); return true; }; bool setManufacturerId(char *newManufacturerId) { UNUSED(newManufacturerId); return true; }; @@ -355,4 +356,5 @@ void analyzeModeActivationConditions(void) {} bool isModeActivationConditionConfigured(const modeActivationCondition_t *, const modeActivationCondition_t *) { return false; } void delay(uint32_t) {} +displayPort_t *osdGetDisplayPort(osdDisplayPortDevice_e *) { return NULL; } }