diff --git a/src/main.c b/src/main.c index 5ab4274..9cc1d9c 100644 --- a/src/main.c +++ b/src/main.c @@ -41,27 +41,28 @@ int smaller_of(int a, int b) { return (a < b) ? a : b; } -void wspeed(WINDOW *lwin, int speed){ +void win_number(WINDOW *lwin, int data, int digits){ int lwiny, lwinx, len; char buf[16]; getmaxyx(lwin, lwiny, lwinx); - snprintf(buf , sizeof(buf), "%d", speed); + snprintf(buf , sizeof(buf), "%d", data); len = strlen(buf); int bh = 5; // bitmap height int bw = 3; // bitmap width - int size = smaller_of((lwiny - 2) / bh, (lwinx - 2 - (3 - 1)) / (bw * 3)); + int size = smaller_of((lwiny - 2) / bh, (lwinx - 2 - (digits - 1)) / (bw * digits)); - int total_width = 3 * (bw * size) + 2; + int total_width = digits * (bw * size) + (digits - 1); int startx = (lwinx - total_width) / 2; int starty = (lwiny - bh * size) / 2; + int offset = (bw * size + 1) * (digits - len); win_clear(lwin); for (int d = 0; d < len; d++) { int digit = buf[d] - '0'; - int dx = startx + d * (bw * size + 1); + int dx = startx + d * (bw * size + 1) + offset; for (int y = 0; y < bh; y++) { for (int x = 0; x < bw; x++) { @@ -140,7 +141,16 @@ int main() while(ch == ERR) { get_data(&speed, &power, &bat, &tq, &rpm, &eff, &bat_temp, &var_temp, &mot_temp); - wspeed(win[0], speed); + win_number(win[0], speed, 3); + win_number(win[1], power, 4); + win_number(win[2], bat, 3); + //win[3] + //win[4] + //win[5] + //win_number(win[6], bat_temp, 3); + //win_number(win[7], var_temp, 3); + //win_number(win[8], mot_temp, 3); + //win[9]; ch = getch(); };