diff --git a/locales/en/messages.json b/locales/en/messages.json index 9e1be7fc..4c05cd51 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -3705,6 +3705,24 @@ "osdWarningEscFail": { "message": "Enumerates a list with the ESCs/motors that are failing (RPM or temperature are out of the configured threshold)" }, + "osdWarningCoreTemperature": { + "message": "Warns when MCU core temperature exceeds a configured threshold" + }, + "osdWarningRcSmoothingFailure": { + "message": "Warns when RC Smoothing initialization failed" + }, + "osdWarningFailsafe": { + "message": "Warns when failsafe occurs" + }, + "osdWarningLaunchControl": { + "message": "Warns when Launch Control mode is activated" + }, + "osdWarningGpsRescueUnavailable": { + "message": "Warns when GPS Rescue is not available and cannot be activated" + }, + "osdWarningGpsRescueDisabled": { + "message": "Warns when GPS Rescue is disabled" + }, "osdSectionHelpElements": { "message": "Enable or disable OSD elements." diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js index 43060b09..a5a80aff 100755 --- a/src/js/tabs/osd.js +++ b/src/js/tabs/osd.js @@ -970,8 +970,32 @@ OSD.constants = { desc: 'osdWarningCrashFlipMode' }, ESC_FAIL: { - name: 'OSD_WARNING_ESC_FAIL', + name: 'ESC_FAIL', desc: 'osdWarningEscFail' + }, + CORE_TEMPERATURE: { + name: 'CORE_TEMPERATURE', + desc: 'osdWarningCoreTemperature' + }, + RC_SMOOTHING_FAILURE: { + name: 'RC_SMOOTHING_FAILURE', + desc: 'osdWarningRcSmoothingFailure' + }, + FAILSAFE: { + name: 'FAILSAFE', + desc: 'osdWarningFailsafe' + }, + LAUNCH_CONTROL: { + name: 'LAUNCH_CONTROL', + desc: 'osdWarningLaunchControl' + }, + GPS_RESCUE_UNAVAILABLE: { + name: 'GPS_RESCUE_UNAVAILABLE', + desc: 'osdWarningGpsRescueUnavailable' + }, + GPS_RESCUE_DISABLED: { + name: 'GPS_RESCUE_DISABLED', + desc: 'osdWarningGpsRescueDisabled' } }, @@ -1201,7 +1225,17 @@ OSD.chooseFields = function () { ]; if (semver.gte(CONFIG.apiVersion, "1.39.0")) { OSD.constants.WARNINGS = OSD.constants.WARNINGS.concat([ - F.ESC_FAIL + F.ESC_FAIL, + F.CORE_TEMPERATURE, + F.RC_SMOOTHING_FAILURE + ]); + } + if (semver.gte(CONFIG.apiVersion, "1.41.0")) { + OSD.constants.WARNINGS = OSD.constants.WARNINGS.concat([ + F.FAILSAFE, + F.LAUNCH_CONTROL, + F.GPS_RESCUE_UNAVAILABLE, + F.GPS_RESCUE_DISABLED ]); } }; @@ -1315,6 +1349,9 @@ OSD.msp = { } console.log(warningFlags); result.push16(warningFlags); + if (semver.gte(CONFIG.apiVersion, "1.41.0")) { + result.push32(warningFlags); + } } } return result; @@ -1448,11 +1485,14 @@ OSD.msp = { } // Parse enabled warnings - if (view.offset + 2 <= view.byteLength) { - var warningFlags = view.readU16(); - for (var i = 0; i < OSD.constants.WARNINGS.length; i++) { - d.warnings.push($.extend(OSD.constants.WARNINGS[i], { enabled: (warningFlags & (1 << i)) != 0 })); - } + var warningFlags = view.readU16(); + if (semver.gte(CONFIG.apiVersion, "1.41.0")) { + var warningCount = view.readU8(); + // the flags were replaced with a 32bit version + warningFlags = view.readU32(); + } + for (var i = 0; i < OSD.constants.WARNINGS.length; i++) { + d.warnings.push($.extend(OSD.constants.WARNINGS[i], { enabled: (warningFlags & (1 << i)) != 0 })); } }