mirror of
https://github.com/SemvdH/OBD2-car-display.git
synced 2025-12-14 19:51:04 +00:00
change pos of initialization and add define for percentage width
This commit is contained in:
@@ -26,6 +26,7 @@ Program to create a car monitor display using:
|
|||||||
#define S(x) MS(x) * 1000
|
#define S(x) MS(x) * 1000
|
||||||
|
|
||||||
#define INIT_TEXT_WIDTH 15
|
#define INIT_TEXT_WIDTH 15
|
||||||
|
#define INIT_PERCENTAGE_WIDTH 4
|
||||||
#define FLAG_INIT_UPDATE_TEXT_POS 0x01
|
#define FLAG_INIT_UPDATE_TEXT_POS 0x01
|
||||||
#define FLAG_INIT_CLEAR_POS 0x02
|
#define FLAG_INIT_CLEAR_POS 0x02
|
||||||
#define FLAG_INIT_UPDATE_PERCENT_POS 0x03
|
#define FLAG_INIT_UPDATE_PERCENT_POS 0x03
|
||||||
@@ -97,13 +98,13 @@ void on_init_run()
|
|||||||
init_flag &= ~(1 << FLAG_INIT_CLEAR_POS);
|
init_flag &= ~(1 << FLAG_INIT_CLEAR_POS);
|
||||||
display.setColor(VGA_BLACK);
|
display.setColor(VGA_BLACK);
|
||||||
/*clear only initializing text*/
|
/*clear only initializing text*/
|
||||||
display.print(" ",(display.getDisplayXSize() / 2) - (INIT_TEXT_WIDTH * display.getFontXsize() / 2),display.getDisplayYSize() / 2 + 50);
|
display.print(" ",(display.getDisplayXSize() / 2) - (INIT_TEXT_WIDTH * display.getFontXsize() / 2) - (INIT_PERCENTAGE_WIDTH/2),display.getDisplayYSize() / 2 + 50);
|
||||||
}
|
}
|
||||||
if (init_flag & (1 << FLAG_INIT_UPDATE_TEXT_POS))
|
if (init_flag & (1 << FLAG_INIT_UPDATE_TEXT_POS))
|
||||||
{
|
{
|
||||||
init_flag &= ~(1 << FLAG_INIT_UPDATE_TEXT_POS);
|
init_flag &= ~(1 << FLAG_INIT_UPDATE_TEXT_POS);
|
||||||
display.setColor(VGA_AQUA);
|
display.setColor(VGA_AQUA);
|
||||||
int x_position = (display.getDisplayXSize() / 2 - (INIT_TEXT_WIDTH * display.getFontXsize() / 2)) + (init_text_i * display.getFontXsize());
|
int x_position = (display.getDisplayXSize() / 2 - (INIT_TEXT_WIDTH * display.getFontXsize() / 2)) + (init_text_i * display.getFontXsize()) - (INIT_PERCENTAGE_WIDTH/2);
|
||||||
Serial.println(x_position);
|
Serial.println(x_position);
|
||||||
text_temp[0] = init_text[init_text_i];
|
text_temp[0] = init_text[init_text_i];
|
||||||
display.print(text_temp, x_position, display.getDisplayYSize() / 2 + 50); // print as string with one character
|
display.print(text_temp, x_position, display.getDisplayYSize() / 2 + 50); // print as string with one character
|
||||||
@@ -111,16 +112,16 @@ void on_init_run()
|
|||||||
if (init_flag & (1 << FLAG_INIT_UPDATE_PERCENT_POS))
|
if (init_flag & (1 << FLAG_INIT_UPDATE_PERCENT_POS))
|
||||||
{
|
{
|
||||||
init_flag &= ~(1 << FLAG_INIT_UPDATE_PERCENT_POS);
|
init_flag &= ~(1 << FLAG_INIT_UPDATE_PERCENT_POS);
|
||||||
int percent_x_pos = (display.getDisplayXSize() / 2 - (INIT_TEXT_WIDTH * display.getFontXsize() / 2)) + (INIT_TEXT_WIDTH * display.getFontXsize());
|
int percent_x_pos = (display.getDisplayXSize() / 2 - (INIT_TEXT_WIDTH * display.getFontXsize() / 2)) + (INIT_TEXT_WIDTH * display.getFontXsize()) - (INIT_PERCENTAGE_WIDTH/2);
|
||||||
display.setColor(VGA_BLACK);
|
display.setColor(VGA_BLACK);
|
||||||
/*clear text region for percent*/
|
/*clear text region for percent*/
|
||||||
display.print(" ", percent_x_pos, display.getDisplayYSize() / 2 + 50);
|
display.print(" ", percent_x_pos, display.getDisplayYSize() / 2 + 50);
|
||||||
|
|
||||||
display.setColor(VGA_FUCHSIA);
|
display.setColor(VGA_FUCHSIA);
|
||||||
char *percent_text = (char *)malloc(3 * sizeof(char));
|
char *percent_text = (char *)malloc((INIT_PERCENTAGE_WIDTH-1) * sizeof(char));
|
||||||
sprintf(percent_text, "%d", init_percent);
|
sprintf(percent_text, "%d", init_percent);
|
||||||
display.print(percent_text, percent_x_pos, display.getDisplayYSize() / 2 + 50);
|
display.print(percent_text, percent_x_pos, display.getDisplayYSize() / 2 + 50);
|
||||||
display.print("%", percent_x_pos + 3 * display.getFontXsize(), display.getDisplayYSize() / 2 + 50);
|
display.print("%", percent_x_pos + (INIT_PERCENTAGE_WIDTH-1) * display.getFontXsize(), display.getDisplayYSize() / 2 + 50);
|
||||||
free(percent_text);
|
free(percent_text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user