diff --git a/src/main/drivers/max7456_symbols.h b/src/main/drivers/max7456_symbols.h index e2f633b8cf..68de428937 100644 --- a/src/main/drivers/max7456_symbols.h +++ b/src/main/drivers/max7456_symbols.h @@ -1,5 +1,5 @@ /* @file max7456_symbols.h - * @brief max7456 preprocessor symbols + * @brief max7456 symbols for the mwosd font set * * @author Nathan Tsoi nathan@vertile.com * @@ -24,41 +24,41 @@ #ifdef USE_MAX7456 // Character Symbols -#define SYM_BLANK 0X20 +#define SYM_BLANK 0x20 // Satellite Graphics -#define SYM_SAT_L 0X1E -#define SYM_SAT_R 0X1F -//#define SYM_SAT 0X0F // Not used +#define SYM_SAT_L 0x1E +#define SYM_SAT_R 0x1F +//#define SYM_SAT 0x0F // Not used // Degrees Icon for HEADING/DIRECTION HOME -#define SYM_DEGREES 0XBD +#define SYM_DEGREES 0xBD // Direction arrows -#define SYM_ARROW_SOUTH 0X60 -#define SYM_ARROW_2 0X61 -#define SYM_ARROW_3 0X62 -#define SYM_ARROW_4 0X63 -#define SYM_ARROW_EAST 0X64 -#define SYM_ARROW_6 0X65 -#define SYM_ARROW_7 0X66 -#define SYM_ARROW_8 0X67 -#define SYM_ARROW_NORTH 0X68 -#define SYM_ARROW_10 0X69 -#define SYM_ARROW_11 0X6A -#define SYM_ARROW_12 0X6B -#define SYM_ARROW_WEST 0X6C -#define SYM_ARROW_14 0X6D -#define SYM_ARROW_15 0X6E -#define SYM_ARROW_16 0X6F +#define SYM_ARROW_SOUTH 0x60 +#define SYM_ARROW_2 0x61 +#define SYM_ARROW_3 0x62 +#define SYM_ARROW_4 0x63 +#define SYM_ARROW_EAST 0x64 +#define SYM_ARROW_6 0x65 +#define SYM_ARROW_7 0x66 +#define SYM_ARROW_8 0x67 +#define SYM_ARROW_NORTH 0x68 +#define SYM_ARROW_10 0x69 +#define SYM_ARROW_11 0x6A +#define SYM_ARROW_12 0x6B +#define SYM_ARROW_WEST 0x6C +#define SYM_ARROW_14 0x6D +#define SYM_ARROW_15 0x6E +#define SYM_ARROW_16 0x6F // Heading Graphics -#define SYM_HEADING_N 0X18 -#define SYM_HEADING_S 0X19 -#define SYM_HEADING_E 0X1A -#define SYM_HEADING_W 0X1B -#define SYM_HEADING_DIVIDED_LINE 0X1C -#define SYM_HEADING_LINE 0X1D +#define SYM_HEADING_N 0x18 +#define SYM_HEADING_S 0x19 +#define SYM_HEADING_E 0x1A +#define SYM_HEADING_W 0x1B +#define SYM_HEADING_DIVIDED_LINE 0x1C +#define SYM_HEADING_LINE 0x1D // FRSKY HUB #define SYM_CELL0 0xF0 @@ -80,7 +80,7 @@ // Map mode #define SYM_HOME 0x04 -#define SYM_AIRCRAFT 0X05 +#define SYM_AIRCRAFT 0x05 #define SYM_RANGE_100 0x21 #define SYM_RANGE_500 0x22 #define SYM_RANGE_2500 0x23 @@ -89,56 +89,56 @@ // GPS Coordinates and Altitude #define SYM_LAT 0xCA -#define SYM_LON 0XCB -#define SYM_ALT 0XCC +#define SYM_LON 0xCB +#define SYM_ALT 0xCC // GPS Mode and Autopilot -#define SYM_3DFIX 0XDF -#define SYM_HOLD 0XEF -#define SYM_G_HOME 0XFF -#define SYM_GHOME 0X9D -#define SYM_GHOME1 0X9E -#define SYM_GHOLD 0XCD -#define SYM_GHOLD1 0XCE -#define SYM_GMISSION 0XB5 -#define SYM_GMISSION1 0XB6 -#define SYM_GLAND 0XB7 -#define SYM_GLAND1 0XB8 +#define SYM_3DFIX 0xDF +#define SYM_HOLD 0xEF +#define SYM_G_HOME 0xFF +#define SYM_GHOME 0x9D +#define SYM_GHOME1 0x9E +#define SYM_GHOLD 0xCD +#define SYM_GHOLD1 0xCE +#define SYM_GMISSION 0xB5 +#define SYM_GMISSION1 0xB6 +#define SYM_GLAND 0xB7 +#define SYM_GLAND1 0xB8 // Gimbal active Mode -#define SYM_GIMBAL 0X16 -#define SYM_GIMBAL1 0X17 +#define SYM_GIMBAL 0x16 +#define SYM_GIMBAL1 0x17 // Sensor´s Presence -#define SYM_ACC 0XA0 -#define SYM_MAG 0XA1 -#define SYM_BAR 0XA2 -#define SYM_GPS 0XA3 -#define SYM_MAN 0XC0 -#define SYM_MAN1 0XC1 -#define SYM_MAN2 0XC2 -#define SYM_CHECK 0XBE -#define SYM_BARO10 0XB7 -#define SYM_BARO11 0XB8 -#define SYM_MAG10 0XB5 -#define SYM_MAG11 0XB6 +#define SYM_ACC 0xA0 +#define SYM_MAG 0xA1 +#define SYM_BAR 0xA2 +#define SYM_GPS 0xA3 +#define SYM_MAN 0xC0 +#define SYM_MAN1 0xC1 +#define SYM_MAN2 0xC2 +#define SYM_CHECK 0xBE +#define SYM_BARO10 0xB7 +#define SYM_BARO11 0xB8 +#define SYM_MAG10 0xB5 +#define SYM_MAG11 0xB6 // AH Center screen Graphics -//#define SYM_AH_CENTER 0X01 +//#define SYM_AH_CENTER 0x01 #ifdef ALT_CENTER - #define SYM_AH_CENTER_LINE 0XB0 - #define SYM_AH_CENTER 0XB1 - #define SYM_AH_CENTER_LINE_RIGHT 0XB2 + #define SYM_AH_CENTER_LINE 0xB0 + #define SYM_AH_CENTER 0xB1 + #define SYM_AH_CENTER_LINE_RIGHT 0xB2 #else - #define SYM_AH_CENTER_LINE 0X26 - #define SYM_AH_CENTER 0X7E - #define SYM_AH_CENTER_LINE_RIGHT 0XBC + #define SYM_AH_CENTER_LINE 0x26 + #define SYM_AH_CENTER 0x7E + #define SYM_AH_CENTER_LINE_RIGHT 0xBC #endif -#define SYM_AH_RIGHT 0X02 -#define SYM_AH_LEFT 0X03 -#define SYM_AH_DECORATION_UP 0XC9 -#define SYM_AH_DECORATION_DOWN 0XCF +#define SYM_AH_RIGHT 0x02 +#define SYM_AH_LEFT 0x03 +#define SYM_AH_DECORATION_UP 0xC9 +#define SYM_AH_DECORATION_DOWN 0xCF // AH Bars @@ -146,17 +146,17 @@ // Temperature -#define SYM_TEMP_F 0X0D -#define SYM_TEMP_C 0X0E +#define SYM_TEMP_F 0x0D +#define SYM_TEMP_C 0x0E // Batt evolution -#define SYM_BATT_FULL 0X90 -#define SYM_BATT_5 0X91 -#define SYM_BATT_4 0X92 -#define SYM_BATT_3 0X93 -#define SYM_BATT_2 0X94 -#define SYM_BATT_1 0X95 -#define SYM_BATT_EMPTY 0X96 +#define SYM_BATT_FULL 0x90 +#define SYM_BATT_5 0x91 +#define SYM_BATT_4 0x92 +#define SYM_BATT_3 0x93 +#define SYM_BATT_2 0x94 +#define SYM_BATT_1 0x95 +#define SYM_BATT_EMPTY 0x96 // Vario #define SYM_VARIO 0x7F @@ -165,42 +165,42 @@ #define SYM_GLIDESCOPE 0xE0 // Batt Icon´s -#define SYM_MAIN_BATT 0X97 -#define SYM_VID_BAT 0XBF +#define SYM_MAIN_BATT 0x97 +#define SYM_VID_BAT 0xBF // Unit Icon´s (Metric) -#define SYM_MS 0X9F -#define SYM_KMH 0XA5 -#define SYM_ALTM 0XA7 -#define SYM_DISTHOME_M 0XBB -#define SYM_M 0X0C +#define SYM_MS 0x9F +#define SYM_KMH 0xA5 +#define SYM_ALTM 0xA7 +#define SYM_DISTHOME_M 0xBB +#define SYM_M 0x0C // Unit Icon´s (Imperial) -#define SYM_FTS 0X99 -#define SYM_MPH 0XA6 -#define SYM_ALTFT 0XA8 -#define SYM_DISTHOME_FT 0XB9 -#define SYM_FT 0X0F +#define SYM_FTS 0x99 +#define SYM_MPH 0xA6 +#define SYM_ALTFT 0xA8 +#define SYM_DISTHOME_FT 0xB9 +#define SYM_FT 0x0F // Voltage and amperage -#define SYM_VOLT 0XA9 -#define SYM_AMP 0X9A -#define SYM_MAH 0XA4 -#define SYM_WATT 0X57 +#define SYM_VOLT 0xA9 +#define SYM_AMP 0x9A +#define SYM_MAH 0xA4 +#define SYM_WATT 0x57 // Flying Mode -#define SYM_ACRO 0XAE -#define SYM_ACROGY 0X98 -#define SYM_ACRO1 0XAF -#define SYM_STABLE 0XAC -#define SYM_STABLE1 0XAD -#define SYM_HORIZON 0XC4 -#define SYM_HORIZON1 0XC5 -#define SYM_PASS 0XAA -#define SYM_PASS1 0XAB -#define SYM_AIR 0XEA -#define SYM_AIR1 0XEB -#define SYM_PLUS 0X89 +#define SYM_ACRO 0xAE +#define SYM_ACROGY 0x98 +#define SYM_ACRO1 0xAF +#define SYM_STABLE 0xAC +#define SYM_STABLE1 0xAD +#define SYM_HORIZON 0xC4 +#define SYM_HORIZON1 0xC5 +#define SYM_PASS 0xAA +#define SYM_PASS1 0xAB +#define SYM_AIR 0xEA +#define SYM_AIR1 0xEB +#define SYM_PLUS 0x89 // Note, these change with scrolling enabled (scrolling is TODO) //#define SYM_AH_DECORATION_LEFT 0x13 @@ -208,23 +208,23 @@ #define SYM_AH_DECORATION 0x13 // Time -#define SYM_ON_M 0X9B -#define SYM_FLY_M 0X9C -#define SYM_ON_H 0X70 -#define SYM_FLY_H 0X71 +#define SYM_ON_M 0x9B +#define SYM_FLY_M 0x9C +#define SYM_ON_H 0x70 +#define SYM_FLY_H 0x71 // Throttle Position (%) -#define SYM_THR 0XC8 -#define SYM_THR1 0XC9 +#define SYM_THR 0xC8 +#define SYM_THR1 0xC9 // RSSI -#define SYM_RSSI 0XBA +#define SYM_RSSI 0xBA // Menu cursor #define SYM_CURSOR SYM_AH_LEFT //Misc -#define SYM_COLON 0X2D +#define SYM_COLON 0x2D //sport #define SYM_MIN 0xB3 diff --git a/src/main/io/osd.c b/src/main/io/osd.c index 88377fa0d7..40fbcd3600 100644 --- a/src/main/io/osd.c +++ b/src/main/io/osd.c @@ -105,6 +105,7 @@ #ifdef OSD #include "drivers/max7456.h" +#include "drivers/max7456_symbols.h" #ifdef USE_RTC6705 #include "drivers/vtx_soft_spi_rtc6705.h" @@ -669,24 +670,30 @@ void updateOsd(void) } if (masterConfig.osdProfile.item_pos[OSD_MAIN_BATT_VOLTAGE] != -1) { - sprintf(line, "\x01%d.%1d", vbat / 10, vbat % 10); + line[0] = SYM_VOLT; + sprintf(line+1, "%d.%1d", vbat / 10, vbat % 10); max7456_write_string(line, masterConfig.osdProfile.item_pos[OSD_MAIN_BATT_VOLTAGE]); } if (masterConfig.osdProfile.item_pos[OSD_RSSI_VALUE] != -1) { - sprintf(line, "\x02%d", rssi / 10); + line[0] = SYM_RSSI; + sprintf(line+1, "%d", rssi / 10); max7456_write_string(line, masterConfig.osdProfile.item_pos[OSD_RSSI_VALUE]); } if (masterConfig.osdProfile.item_pos[OSD_THROTTLE_POS] != -1) { - sprintf(line, "\x03%3d", (constrain(rcData[THROTTLE], PWM_RANGE_MIN, PWM_RANGE_MAX) - PWM_RANGE_MIN) * 100 / (PWM_RANGE_MAX - PWM_RANGE_MIN)); + line[0] = SYM_THR; + line[1] = SYM_THR1; + sprintf(line+2, "%3d", (constrain(rcData[THROTTLE], PWM_RANGE_MIN, PWM_RANGE_MAX) - PWM_RANGE_MIN) * 100 / (PWM_RANGE_MAX - PWM_RANGE_MIN)); max7456_write_string(line, masterConfig.osdProfile.item_pos[OSD_THROTTLE_POS]); } if (masterConfig.osdProfile.item_pos[OSD_TIMER] != -1) { if (armed) { seconds = armed_seconds + ((now-armed_at) / 1000000); - sprintf(line, "\x04 %02d:%02d", seconds / 60, seconds % 60); + line[0] = SYM_FLY_M; + sprintf(line+1, " %02d:%02d", seconds / 60, seconds % 60); } else { + line[0] = SYM_ON_M; seconds = now / 1000000; - sprintf(line, "\x05 %02d:%02d", seconds / 60, seconds % 60); + sprintf(line+1, " %02d:%02d", seconds / 60, seconds % 60); } max7456_write_string(line, masterConfig.osdProfile.item_pos[OSD_TIMER]); }