1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-22 15:55:40 +03:00

Add pilot name to INAV

- Renamed `name` variable used for craft name to `craftName`. The CLI and MSP have not changed. Only the internal variable name to make more specific.
- Added pilot name, which can be set in CLI using `pilot_name`.
- Added pilot name to OSD elements.
This commit is contained in:
Darren Lines 2023-01-19 15:48:47 +00:00
parent b4d18efc2f
commit 6d3867b01e
7 changed files with 35 additions and 9 deletions

View file

@ -1809,7 +1809,7 @@ static bool blackboxWriteSysinfo(void)
BLACKBOX_PRINT_HEADER_LINE("Firmware revision", "INAV %s (%s) %s", FC_VERSION_STRING, shortGitRevision, targetName);
BLACKBOX_PRINT_HEADER_LINE("Firmware date", "%s %s", buildDate, buildTime);
BLACKBOX_PRINT_HEADER_LINE("Log start datetime", "%s", blackboxGetStartDateTime(buf));
BLACKBOX_PRINT_HEADER_LINE("Craft name", "%s", systemConfig()->name);
BLACKBOX_PRINT_HEADER_LINE("Craft name", "%s", systemConfig()->craftName);
BLACKBOX_PRINT_HEADER_LINE("P interval", "%u/%u", blackboxConfig()->rate_num, blackboxConfig()->rate_denom);
BLACKBOX_PRINT_HEADER_LINE("minthrottle", "%d", getThrottleIdleValue());
BLACKBOX_PRINT_HEADER_LINE("maxthrottle", "%d", motorConfig()->maxthrottle);

View file

@ -80,7 +80,8 @@ typedef struct systemConfig_s {
uint8_t cpuUnderclock;
#endif
uint8_t throttle_tilt_compensation_strength; // the correction that will be applied at throttle_correction_angle.
char name[MAX_NAME_LENGTH + 1];
char craftName[MAX_NAME_LENGTH + 1];
char pilotName[MAX_NAME_LENGTH + 1];
} systemConfig_t;
PG_DECLARE(systemConfig_t, systemConfig);

View file

@ -1398,7 +1398,7 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
case MSP_NAME:
{
const char *name = systemConfig()->name;
const char *name = systemConfig()->craftName;
while (*name) {
sbufWriteU8(dst, *name++);
}

View file

@ -3576,6 +3576,12 @@ groups:
- name: name
description: "Craft name"
default_value: ""
field: craftName
max: MAX_NAME_LENGTH
- name: pilot_name
description: "Pilot name"
default_value: ""
field: pilotName
max: MAX_NAME_LENGTH
- name: PG_MODE_ACTIVATION_OPERATOR_CONFIG

View file

@ -763,12 +763,25 @@ static void osdFormatCoordinate(char *buff, char sym, int32_t val)
static void osdFormatCraftName(char *buff)
{
if (strlen(systemConfig()->name) == 0)
if (strlen(systemConfig()->craftName) == 0)
strcpy(buff, "CRAFT_NAME");
else {
for (int i = 0; i < MAX_NAME_LENGTH; i++) {
buff[i] = sl_toupper((unsigned char)systemConfig()->name[i]);
if (systemConfig()->name[i] == 0)
buff[i] = sl_toupper((unsigned char)systemConfig()->craftName[i]);
if (systemConfig()->craftName[i] == 0)
break;
}
}
}
void osdFormatPilotName(char *buff)
{
if (strlen(systemConfig()->pilotName) == 0)
strcpy(buff, "PILOT_NAME");
else {
for (int i = 0; i < MAX_NAME_LENGTH; i++) {
buff[i] = sl_toupper((unsigned char)systemConfig()->pilotName[i]);
if (systemConfig()->pilotName[i] == 0)
break;
}
}
@ -2077,6 +2090,10 @@ static bool osdDrawSingleElement(uint8_t item)
osdFormatCraftName(buff);
break;
case OSD_PILOT_NAME:
osdFormatPilotName(buff);
break;
case OSD_THROTTLE_POS:
{
osdFormatThrottlePosition(buff, false, &elemAttr);
@ -3551,6 +3568,7 @@ void pgResetFn_osdLayoutsConfig(osdLayoutsConfig_t *osdLayoutsConfig)
osdLayoutsConfig->item_pos[0][OSD_HORIZON_SIDEBARS] = OSD_POS(8, 6);
osdLayoutsConfig->item_pos[0][OSD_CRAFT_NAME] = OSD_POS(20, 2);
osdLayoutsConfig->item_pos[0][OSD_PILOT_NAME] = OSD_POS(20, 2);
osdLayoutsConfig->item_pos[0][OSD_VTX_CHANNEL] = OSD_POS(8, 6);
#ifdef USE_SERIALRX_CRSF
@ -4153,9 +4171,9 @@ static void osdShowArmed(void)
displayWrite(osdDisplayPort, (osdDisplayPort->cols - strlen(buf)) / 2, y, buf);
y += 2;
if (strlen(systemConfig()->name) > 0) {
if (strlen(systemConfig()->craftName) > 0) {
osdFormatCraftName(craftNameBuf);
displayWrite(osdDisplayPort, (osdDisplayPort->cols - strlen(systemConfig() -> name)) / 2, y, craftNameBuf );
displayWrite(osdDisplayPort, (osdDisplayPort->cols - strlen(systemConfig()->craftName)) / 2, y, craftNameBuf );
y += 1;
}
if (posControl.waypointListValid && posControl.waypointCount > 0) {

View file

@ -270,6 +270,7 @@ typedef enum {
OSD_NAV_WP_MULTI_MISSION_INDEX,
OSD_GROUND_COURSE, // 140
OSD_CROSS_TRACK_ERROR,
OSD_PILOT_NAME,
OSD_ITEM_COUNT // MUST BE LAST
} osd_items_e;

View file

@ -1192,7 +1192,7 @@ static mspResult_e djiProcessMspCommand(mspPacket_t *cmd, mspPacket_t *reply, ms
djiSerializeCraftNameOverride(dst);
} else {
#endif
sbufWriteData(dst, systemConfig()->name, (int)strlen(systemConfig()->name));
sbufWriteData(dst, systemConfig()->craftName, (int)strlen(systemConfig()->craftName));
#if defined(USE_OSD)
}
#endif