Skip to content

Conversation

@MrD-RC
Copy link
Member

@MrD-RC MrD-RC commented Mar 7, 2025

  • Added functionality to configurator
  • Updated analogue fonts
  • Updated digital fonts
  • Added new font symbols to INAV Character Map.md

Goes with iNavFlight/inav#10725

- Added functionality to configurator
- Updated analogue fonts
- Updated digital fonts
- Added new font symbols to `INAV Character Map.md`
Updated OSD preview images to reflect new and old changes
- Corrected OSD element ID. Due to a new element being added after I started work on this
- Fixed the display of certain OSD element, showing multiple units
- Fixed craft name and pilot name not being updated on load
@MrD-RC MrD-RC merged commit a21f143 into master Nov 3, 2025
6 checks passed
@MrD-RC MrD-RC deleted the MrD_Add-throttle-gauge branch November 3, 2025 21:05
@qodo-code-review
Copy link
Contributor

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status:
No audit logs: The new UI feature additions (e.g., adding THROTTLE_GAUGE symbol mappings and preview) do
not include any logging for critical actions, but given these are presentation-layer
changes, it's unclear that audit logging is applicable from this diff alone.

Referred Code
    name: 'THROTTLE_GAUGE',
    id: 168,
    preview: FONT.symbol(SYM.THROTTLE_GAUGE_EMPTY) + '\n' +
        FONT.symbol(SYM.THROTTLE_GAUGE_EMPTY) + '\n' +
        FONT.symbol(SYM.THROTTLE_GAUGE_FULL) + '\n' +
        FONT.symbol(SYM.THROTTLE_GAUGE_FULL) + '\n' +
        FONT.symbol(SYM.THROTTLE_GAUGE_FULL) + '\n'
},
Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status:
Missing guards: New logic adds break statements and registers THROTTLE_GAUGE and calls
updatePilotAndCraftNames() without visible error handling, but these UI preview and setup
paths may rely on broader framework safeguards not shown in the diff.

Referred Code
        break;
    case 4: // GA
        s += FONT.symbol(SYM.DIST_NM);
        break;
    default: // Metric
        s += FONT.symbol(SYM.DIST_KM);
        break;
}
Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
Input reliance: The preview function reads Settings.getInputValue('osd_decimals_distance') and
OSD.data.preferences.units without added validation in this diff, but these may be
validated elsewhere in the application.

Referred Code
function osdDecimalsDistancePreview(prependedSymbol) {
    var s = '24.9';
    if (Settings.getInputValue('osd_decimals_distance') == 4) {
        s+= '3';
    } if (Settings.getInputValue('osd_decimals_distance') == 5) {
        s = '1' + s + '6';
    }

    s = FONT.embed_dot(s);

    switch (OSD.data.preferences.units) {
        case 0: // Imperial
        case 3: // UK
            s += FONT.symbol(SYM.DIST_MI);
            break;
        case 4: // GA
            s += FONT.symbol(SYM.DIST_NM);
            break;
        default: // Metric
            s += FONT.symbol(SYM.DIST_KM);
            break;


 ... (clipped 1 lines)
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@antlestxp
Copy link

I don't see the new graphic with DJI air units. Is DJI missing the character set to display it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants