From 34b287f871bc16003acb42dd3549892acdb0f3de Mon Sep 17 00:00:00 2001 From: SemvdH Date: Sun, 4 May 2025 22:08:24 +0200 Subject: [PATCH] Fixes for temp display and start defines for engine load --- due_obd2/SixteenSegment48x72Num.c | 29 ++++++++++ due_obd2/bars.cpp | 8 +-- due_obd2/defines.h | 18 ++++-- due_obd2/due_obd2.ino | 95 +++++++++++++++++++++++-------- 4 files changed, 118 insertions(+), 32 deletions(-) create mode 100644 due_obd2/SixteenSegment48x72Num.c diff --git a/due_obd2/SixteenSegment48x72Num.c b/due_obd2/SixteenSegment48x72Num.c new file mode 100644 index 0000000..5042d87 --- /dev/null +++ b/due_obd2/SixteenSegment48x72Num.c @@ -0,0 +1,29 @@ +// SixteenSegment48x72Num.c +// Font type : Numeric (10 characters) +// Font size : 48x72 pixels +// Memory usage : 4324 bytes + +#if defined(__AVR__) + #include + #define fontdatatype const uint8_t +#elif defined(__PIC32MX__) + #define PROGMEM + #define fontdatatype const unsigned char +#elif defined(__arm__) + #define PROGMEM + #define fontdatatype const unsigned char +#endif + +fontdatatype SixteenSegment48x72Num[4324] PROGMEM={ +0x30,0x48,0x30,0x0A, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x0F,0xFE,0x00,0x00,0xFF,0xFC,0x1F,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x0C,0xFF,0xF8,0x1F,0xFF,0x30,0x1E,0x00,0x00,0x00,0x00,0x78,0x3F,0x00,0x00,0x00,0x06,0xFC,0x3F,0x00,0x00,0x00,0x0E,0xFC,0x3F,0x00,0x00,0x00,0x0E,0xFC,0x3F,0x00,0x00,0x00,0x1E,0xFC,0x3F,0x00,0x00,0x00,0x1E,0xFC,0x3F,0x00,0x00,0x00,0x3E,0xFC,0x3F,0x00,0x00,0x00,0x3E,0xFC,0x3F,0x00,0x00,0x00,0x7E,0xFC,0x3F,0x00,0x00,0x00,0xFC,0xFC,0x3F,0x00,0x00,0x00,0xFC,0xFC,0x3F,0x00,0x00,0x01,0xF8,0xFC,0x3F,0x00,0x00,0x01,0xF0,0xFC,0x3F,0x00,0x00,0x03,0xF0,0xFC,0x3F,0x00,0x00,0x03,0xE0,0xFC,0x3F,0x00,0x00,0x07,0xE0,0xFC,0x3F,0x00,0x00,0x07,0xC0,0xFC,0x3F,0x00,0x00,0x0F,0xC0,0xFC,0x3F,0x00,0x00,0x0F,0x80,0xFC,0x3F,0x00,0x00,0x0F,0x80,0xFC,0x3F,0x00,0x00,0x0F,0x00,0xFC,0x3F,0x00,0x00,0x0E,0x00,0xFC,0x3F,0x00,0x00,0x0E,0x00,0xFC,0x3F,0x00,0x00,0x0C,0x00,0xFC,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1E,0x00,0x00,0x00,0x00,0x38,0x0C,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x30,0x0E,0x00,0x00,0x00,0x00,0x38,0x1E,0x00,0x00,0x00,0x00,0x78,0x3F,0x00,0x30,0x00,0x00,0xFC,0x3F,0x00,0x70,0x00,0x00,0xFC,0x3F,0x00,0x70,0x00,0x00,0xFC,0x3F,0x00,0xF0,0x00,0x00,0xFC,0x3F,0x00,0xF0,0x00,0x00,0xFC,0x3F,0x01,0xF0,0x00,0x00,0xFC,0x3F,0x03,0xF0,0x00,0x00,0xFC,0x3F,0x03,0xF0,0x00,0x00,0xFC,0x3F,0x07,0xE0,0x00,0x00,0xFC,0x3F,0x07,0xC0,0x00,0x00,0xFC,0x3F,0x0F,0xC0,0x00,0x00,0xFC,0x3F,0x0F,0x80,0x00,0x00,0xFC,0x3F,0x1F,0x80,0x00,0x00,0xFC,0x3F,0x1F,0x00,0x00,0x00,0xFC,0x3F,0x3F,0x00,0x00,0x00,0xFC,0x3F,0x7E,0x00,0x00,0x00,0xFC,0x3F,0x7E,0x00,0x00,0x00,0xFC,0x3F,0x7C,0x00,0x00,0x00,0xFC,0x3F,0x78,0x00,0x00,0x00,0xFC,0x3F,0x78,0x00,0x00,0x00,0xFC,0x3F,0x70,0x00,0x00,0x00,0xFC,0x3F,0x70,0x00,0x00,0x00,0xFC,0x3F,0x60,0x00,0x00,0x00,0xFC,0x1E,0x00,0x00,0x00,0x00,0x78,0x0C,0xFF,0xF8,0x1F,0xFF,0x30,0x05,0xFF,0xFC,0x3F,0xFF,0x90,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x00,0xFF,0xF8,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x00,0x00,0x00,0x00,0xFF,0xFC,0x00,0x00,0x00,0x03,0xFF,0xFE,0x00,0x00,0x00,0x03,0xFF,0xFE,0x00,0x00,0x00,0x01,0xFF,0xFC,0x00,0x00,0x00,0x00,0xFF,0xF9,0x80,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0xFF,0xF9,0x9F,0xFF,0x00,0x01,0xFF,0xFC,0xBF,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x00,0xFF,0xF8,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 1 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x0F,0xFE,0x00,0x00,0xFF,0xFC,0x1F,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x00,0xFF,0xF8,0x1F,0xFF,0x30,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0xFF,0xF8,0x1F,0xFF,0x38,0x01,0xFF,0xFC,0x3F,0xFF,0xB0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x0D,0xFF,0xFC,0x3F,0xFF,0x80,0x0E,0xFF,0xF8,0x1F,0xFF,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x0C,0xFF,0xF8,0x1F,0xFF,0x00,0x05,0xFF,0xFC,0x3F,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x00,0xFF,0xF8,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 2 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x0F,0xFE,0x00,0x00,0xFF,0xFC,0x1F,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x00,0xFF,0xF8,0x1F,0xFF,0x30,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0xFF,0xF8,0x1F,0xFF,0x38,0x01,0xFF,0xFC,0x3F,0xFF,0xB0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0xB0,0x00,0xFF,0xF8,0x1F,0xFF,0x38,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0xFF,0xF8,0x1F,0xFF,0x30,0x01,0xFF,0xFC,0x3F,0xFF,0x90,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x00,0xFF,0xF8,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 3 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x30,0x1E,0x00,0x00,0x00,0x00,0x78,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1E,0xFF,0xF8,0x1F,0xFF,0x38,0x0D,0xFF,0xFC,0x3F,0xFF,0xB0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0xB0,0x00,0xFF,0xF8,0x1F,0xFF,0x38,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 4 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x0F,0xFE,0x00,0x00,0xFF,0xFC,0x1F,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x0C,0xFF,0xF8,0x1F,0xFF,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x1E,0xFF,0xF8,0x1F,0xFF,0x00,0x0D,0xFF,0xFC,0x3F,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0xB0,0x00,0xFF,0xF8,0x1F,0xFF,0x38,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0xFF,0xF8,0x1F,0xFF,0x30,0x01,0xFF,0xFC,0x3F,0xFF,0x90,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x00,0xFF,0xF8,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 5 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x0F,0xFE,0x00,0x00,0xFF,0xFC,0x1F,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x0C,0xFF,0xF8,0x1F,0xFF,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x1E,0xFF,0xF8,0x1F,0xFF,0x00,0x0D,0xFF,0xFC,0x3F,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x0D,0xFF,0xFC,0x3F,0xFF,0xB0,0x0E,0xFF,0xF8,0x1F,0xFF,0x38,0x1E,0x00,0x00,0x00,0x00,0x78,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x1E,0x00,0x00,0x00,0x00,0x78,0x0C,0xFF,0xF8,0x1F,0xFF,0x30,0x05,0xFF,0xFC,0x3F,0xFF,0x90,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x00,0xFF,0xF8,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 6 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x0F,0xFE,0x00,0x00,0xFF,0xFC,0x1F,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x00,0xFF,0xF8,0x1F,0xFF,0x30,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 7 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x0F,0xFE,0x00,0x00,0xFF,0xFC,0x1F,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x0C,0xFF,0xF8,0x1F,0xFF,0x30,0x1E,0x00,0x00,0x00,0x00,0x78,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1E,0xFF,0xF8,0x1F,0xFF,0x38,0x0D,0xFF,0xFC,0x3F,0xFF,0xB0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x0D,0xFF,0xFC,0x3F,0xFF,0xB0,0x0E,0xFF,0xF8,0x1F,0xFF,0x38,0x1E,0x00,0x00,0x00,0x00,0x78,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x1E,0x00,0x00,0x00,0x00,0x78,0x0C,0xFF,0xF8,0x1F,0xFF,0x30,0x05,0xFF,0xFC,0x3F,0xFF,0x90,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x00,0xFF,0xF8,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 8 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x0F,0xFE,0x00,0x00,0xFF,0xFC,0x1F,0xFF,0x80,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x0C,0xFF,0xF8,0x1F,0xFF,0x30,0x1E,0x00,0x00,0x00,0x00,0x78,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFC,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1E,0xFF,0xF8,0x1F,0xFF,0x38,0x0D,0xFF,0xFC,0x3F,0xFF,0xB0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0xB0,0x00,0xFF,0xF8,0x1F,0xFF,0x38,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0xFF,0xF8,0x1F,0xFF,0x30,0x01,0xFF,0xFC,0x3F,0xFF,0x90,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x03,0xFF,0xFE,0x7F,0xFF,0xC0,0x01,0xFF,0xFC,0x3F,0xFF,0x80,0x00,0xFF,0xF8,0x1F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 9 +}; diff --git a/due_obd2/bars.cpp b/due_obd2/bars.cpp index 7c07100..387aafe 100644 --- a/due_obd2/bars.cpp +++ b/due_obd2/bars.cpp @@ -3,7 +3,7 @@ void bar_draw_horizontal(int start_x, int start_y, int width, int height, int value, int max_value, uint color, char fill_outline, UTFT *display) { display->setColor(color); - int bar_width = (int)((float)value / (float)max_value * width); + int bar_width = (int)(((float)value / (float)max_value) * (float)width); if (fill_outline) { display->drawRect(start_x, start_y, start_x + width, start_y + height); @@ -14,7 +14,7 @@ void bar_draw_horizontal(int start_x, int start_y, int width, int height, int va void bar_draw_horizontal(int start_x, int start_y, int width, int height, int value, int max_value, byte r, byte g, byte b, char fill_outline, UTFT *display) { display->setColor(r,g,b); - int bar_width = (int)((float)value / (float)max_value * width); + int bar_width = (int)(((float)value / (float)max_value) * (float)width); if (fill_outline) { display->drawRect(start_x, start_y, start_x + width, start_y + height); @@ -25,7 +25,7 @@ void bar_draw_horizontal(int start_x, int start_y, int width, int height, int va void bar_draw_vertical(int start_x, int start_y, int width, int height, int value, int max_value, uint color, char fill_outline, UTFT *display) { display->setColor(color); - int bar_height = (int)((float)value / (float)max_value * height); + int bar_height = (int)(((float)value / (float)max_value) * (float)height); if (fill_outline) { display->drawRect(start_x, start_y, start_x + width, start_y + height); @@ -36,7 +36,7 @@ void bar_draw_vertical(int start_x, int start_y, int width, int height, int valu void bar_draw_vertical(int start_x, int start_y, int width, int height, int value, int max_value, byte r, byte g, byte b, char fill_outline, UTFT *display) { display->setColor(r,g,b); - int bar_height = (int)((float)value / (float)max_value * height); + int bar_height = (int)(((float)value / (float)max_value) * (float)height); if (fill_outline) { display->drawRect(start_x, start_y, start_x + width, start_y + height); diff --git a/due_obd2/defines.h b/due_obd2/defines.h index d50a3cc..95ddf73 100644 --- a/due_obd2/defines.h +++ b/due_obd2/defines.h @@ -10,6 +10,9 @@ #define OBD2_SLOW_VALUES_QUERY_INTERVAL_MS 5000 +#define SCREEN_WIDTH 480 +#define SCREEN_HEIGHT 320 + #define INIT_TEXT_WIDTH 15 #define INIT_PERCENTAGE_WIDTH 4 #define FLAG_INIT_UPDATE_TEXT_POS 0x01 @@ -31,7 +34,7 @@ #define RAM_TEXT_WIDTH 9 #define DEV_LABEL_LENGTH 10 -#define COLOR_ORANGE 255, 96, 33 +#define COLOR_LIGHT_GRAY 217, 217, 217 /****************************************/ /* x and y positions for several gauges */ @@ -42,12 +45,12 @@ #define TEMP_BOX_Y_START TEMP_BOX_PADDING #define TEMP_BOX_CONTENT_WIDTH 180 // witdth of the box to calculate the content in it #define TEMP_BOX_WIDTH TEMP_BOX_CONTENT_WIDTH - TEMP_BOX_PADDING // width of the box to draw the outline -#define TEMP_BOX_HEIGHT 210 - TEMP_BOX_PADDING -#define TEMP_BOX_COLOR VGA_GRAY +#define TEMP_BOX_HEIGHT 193 - TEMP_BOX_PADDING +#define TEMP_BOX_COLOR VGA_TEAL #define TEMP_BOX_BAR_AMOUNT 4 // amount of bars to display in the temperature box #define TEMP_BOX_BAR_PADDING 2 -#define TEMP_BOX_BAR_HEIGHT (((TEMP_BOX_HEIGHT) / ((TEMP_BOX_BAR_AMOUNT) * 2)) - TEMP_BOX_BAR_PADDING) +#define TEMP_BOX_BAR_HEIGHT 23 #define TEMP_BOX_BAR_WIDTH TEMP_BOX_CONTENT_WIDTH - (TEMP_BOX_BAR_PADDING * 4) #define TEMP_BOX_COOLANT_POS 0 @@ -65,4 +68,11 @@ #define TEMP_BOX_OIL_TEXT_Y_START TEMP_BOX_Y_START + TEMP_BOX_BAR_PADDING + (2 * TEMP_BOX_OIL_POS * TEMP_BOX_BAR_HEIGHT) + 2 #define TEMP_BOX_OIL_BAR_Y_START TEMP_BOX_Y_START + TEMP_BOX_BAR_PADDING + ((2 * TEMP_BOX_OIL_POS * TEMP_BOX_BAR_HEIGHT) + TEMP_BOX_BAR_HEIGHT) +/* box that holds the engine load */ +#define ENGINE_LOAD_BOX_X_START TEMP_BOX_X_START +#define ENGINE_LOAD_BOX_Y_START TEMP_BOX_Y_START + TEMP_BOX_HEIGHT + TEMP_BOX_PADDING +#define ENGINE_LOAD_BOX_WIDTH TEMP_BOX_WIDTH +#define ENGINE_LOAD_BOX_HEIGHT (SCREEN_HEIGHT - TEMP_BOX_HEIGHT - TEMP_BOX_PADDING) +#define ENGINE_LOAD_BOX_COLOR VGA_TEAL + #endif // !DEFINES_H \ No newline at end of file diff --git a/due_obd2/due_obd2.ino b/due_obd2/due_obd2.ino index 5d212d1..4af137e 100644 --- a/due_obd2/due_obd2.ino +++ b/due_obd2/due_obd2.ino @@ -66,9 +66,10 @@ char update_slow = 0; obd2_elm327_t elm327; -int bar_1_x = 0; -int bar_2_x = 10; -int bar_3_y = 50; +uint16_t last_coolant_temp = 0; +uint16_t last_intake_air_temp = 0; +uint16_t last_ambient_air_temp = 0; +uint16_t last_engine_oil_temp = 0; void on_init_enter(); void on_init_run(); @@ -171,7 +172,7 @@ void on_init_run() } /* update initialization progress bar */ - display.setColor(COLOR_ORANGE); + display.setColor(COLOR_LIGHT_GRAY); display.fillRect(0, initialization_y + display.getFontYsize() + 3, ((float)init_percent / 100.0) * display.getDisplayXSize(), initialization_y + display.getFontYsize() + 13); obd2_elm327_check_connection(&elm327); @@ -292,9 +293,17 @@ void on_main_enter() display.setColor(TEMP_BOX_COLOR); display.drawRect(TEMP_BOX_X_START, TEMP_BOX_Y_START, TEMP_BOX_X_START + TEMP_BOX_WIDTH, TEMP_BOX_Y_START + TEMP_BOX_HEIGHT); + // draw T for title + display.setBackColor(VGA_TEAL); + display.setColor(VGA_BLACK); + display.print("T", TEMP_BOX_X_START + TEMP_BOX_WIDTH - display.getFontXsize(), TEMP_BOX_Y_START); + + // reset colors display.setColor(VGA_AQUA); + display.setBackColor(VGA_BLACK); // update slow values so we don't have to wait for the first time the timer fires + // TODO do this while initializing query_slow_obd2_values(); } @@ -323,15 +332,22 @@ void on_main_run() display.print("coo ", TEMP_BOX_CONTENT_X_START, TEMP_BOX_COOLANT_TEXT_Y_START); display.setColor(VGA_AQUA); display.printNumI(elm327.engine_coolant_temp, TEMP_BOX_CONTENT_X_START + (4 * display.getFontXsize()), TEMP_BOX_COOLANT_TEXT_Y_START, 4, '0'); - bar_draw_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_COOLANT_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.engine_coolant_temp, COOLANT_TEMP_MAX, COLOR_ORANGE, 1, &display); - #if (DEBUG == 1) - Serial.print("bar height "); - Serial.println(TEMP_BOX_BAR_HEIGHT); + // if the current temp is lower than the last temp (bar dropped) remove part of the drawn bar instead of drawing a new one + if (last_coolant_temp > elm327.engine_coolant_temp) + { + bar_clear_part_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_COOLANT_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.engine_coolant_temp, COOLANT_TEMP_MAX, VGA_BLACK, 1, &display); + } + else + { + bar_draw_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_COOLANT_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.engine_coolant_temp, COOLANT_TEMP_MAX, COLOR_LIGHT_GRAY, 1, &display); + } + last_coolant_temp = elm327.engine_coolant_temp; +#if (DEBUG == 1) Serial.print("coolant temp: "); Serial.println(elm327.engine_coolant_temp); - #endif +#endif // DEBUG } if (elm327.value_updates & (1 << UPDATE_FUEL_PRESSURE_POS)) @@ -355,12 +371,22 @@ void on_main_run() display.print("int ", TEMP_BOX_CONTENT_X_START, TEMP_BOX_INTAKE_AIR_TEXT_Y_START); display.setColor(VGA_AQUA); display.printNumI(elm327.intake_air_temp, TEMP_BOX_CONTENT_X_START + (4 * display.getFontXsize()), TEMP_BOX_INTAKE_AIR_TEXT_Y_START, 4, '0'); - bar_draw_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_INTAKE_AIR_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.intake_air_temp, INTAKE_AIR_TEMP_MAX, COLOR_ORANGE, 1, &display); - #if (DEBUG == 1) + // if the current temp is lower than the last temp (bar dropped) remove part of the drawn bar instead of drawing a new one + if (last_intake_air_temp > elm327.intake_air_temp) + { + bar_clear_part_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_INTAKE_AIR_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.intake_air_temp, INTAKE_AIR_TEMP_MAX, VGA_BLACK, 1, &display); + } + else + { + bar_draw_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_INTAKE_AIR_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.intake_air_temp, INTAKE_AIR_TEMP_MAX, COLOR_LIGHT_GRAY, 1, &display); + } + last_intake_air_temp = elm327.intake_air_temp; + +#if (DEBUG == 1) Serial.print("intake air temp: "); Serial.println(elm327.intake_air_temp); - #endif +#endif } if (elm327.value_updates & (1 << UPDATE_AMBIENT_AIR_TEMP_POS)) @@ -370,12 +396,22 @@ void on_main_run() display.print("amb ", TEMP_BOX_CONTENT_X_START, TEMP_BOX_AMBIENT_AIR_TEXT_Y_START); display.setColor(VGA_AQUA); display.printNumI(elm327.ambient_air_temp, TEMP_BOX_CONTENT_X_START + (4 * display.getFontXsize()), TEMP_BOX_AMBIENT_AIR_TEXT_Y_START, 4, '0'); - bar_draw_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_AMBIENT_AIR_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.ambient_air_temp, AMBIENT_AIR_TEMP_MAX, COLOR_ORANGE, 1, &display); - #if (DEBUG == 1) + // if the current temp is lower than the last temp (bar dropped) remove part of the drawn bar instead of drawing a new one + if (last_ambient_air_temp > elm327.ambient_air_temp) + { + bar_clear_part_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_AMBIENT_AIR_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.ambient_air_temp, AMBIENT_AIR_TEMP_MAX, VGA_BLACK, 1, &display); + } + else + { + bar_draw_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_AMBIENT_AIR_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.ambient_air_temp, AMBIENT_AIR_TEMP_MAX, COLOR_LIGHT_GRAY, 1, &display); + } + last_ambient_air_temp = elm327.ambient_air_temp; + +#if (DEBUG == 1) Serial.print("ambient air temp: "); Serial.println(elm327.ambient_air_temp); - #endif +#endif } if (elm327.value_updates & (1 << UPDATE_OIL_TEMP_POS)) @@ -385,12 +421,23 @@ void on_main_run() display.print("oil ", TEMP_BOX_CONTENT_X_START, TEMP_BOX_OIL_TEXT_Y_START); display.setColor(VGA_AQUA); display.printNumI(elm327.engine_oil_temp, TEMP_BOX_CONTENT_X_START + (4 * display.getFontXsize()), TEMP_BOX_OIL_TEXT_Y_START, 4, '0'); - bar_draw_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_OIL_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.engine_oil_temp, OIL_TEMP_MAX, COLOR_ORANGE, 1, &display); - #if (DEBUG == 1) + // if the current temp is lower than the last temp (bar dropped) remove part of the drawn bar instead of drawing a new one + if (last_engine_oil_temp > elm327.engine_oil_temp) + { + bar_clear_part_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_OIL_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.engine_oil_temp, OIL_TEMP_MAX, VGA_BLACK, 1, &display); + } + else + { + bar_draw_horizontal(TEMP_BOX_CONTENT_X_START, TEMP_BOX_OIL_BAR_Y_START, TEMP_BOX_BAR_WIDTH, TEMP_BOX_BAR_HEIGHT, elm327.engine_oil_temp, OIL_TEMP_MAX, COLOR_LIGHT_GRAY, 1, &display); + } + + last_engine_oil_temp = elm327.engine_oil_temp; + +#if (DEBUG == 1) Serial.print("oil temp: "); Serial.println(elm327.engine_oil_temp); - #endif +#endif } if (elm327.value_updates & (1 << UPDATE_ENGINE_LOAD_POS)) @@ -555,7 +602,7 @@ void setup() display.print("Welcome Sem", (display.getDisplayXSize() / 2) - ((11 * display.getFontXsize()) / 2), 120); display.setColor(VGA_FUCHSIA); display.print("Just a moment...", (display.getDisplayXSize() / 2) - ((16 * display.getFontXsize()) / 2), 140); - display.setColor(COLOR_ORANGE); + display.setColor(COLOR_LIGHT_GRAY); display.print("Waiting for ELM327", (display.getDisplayXSize() / 2) - ((18 * display.getFontXsize()) / 2), 160); #if (DEBUG == 1) @@ -563,16 +610,16 @@ void setup() #endif if (!obd2_elm327_init(&elm327)) { - #if (DEBUG == 1) +#if (DEBUG == 1) Serial.println("Shit man its fucked"); - #endif +#endif } elm327.on_state_change = &bt_state_changed; - #if (DEBUG == 1) +#if (DEBUG == 1) Serial.println("done with elm327 init"); Serial.println(elm327.elm327->connected); - #endif - +#endif + #if (SKIP_BT_CHECK == 1) update_percent(10); #endif