use variable gauge_hgt for gauge heights, no purely numeric widget names

This commit is contained in:
marschap
2005-05-22 17:50:17 +00:00
parent 9e5fa7ae04
commit 0fb7404fbb
2 changed files with 46 additions and 43 deletions
+13 -11
View File
@@ -22,7 +22,7 @@
// CPU screen shows info about percentage of the CPU being used // CPU screen shows info about percentage of the CPU being used
// //
// +--------------------+ +--------------------+ // +--------------------+ +--------------------+
// |## CPU 51.9%: myh #@| |CPU0[---- ]48.1%@| // |## CPU 51.9%: myh #@| |CPU [---- ]48.1%@|
// |Usr 46.0% Nice 0.0%| |U-- S- N I--- | // |Usr 46.0% Nice 0.0%| |U-- S- N I--- |
// |Sys 5.9% Idle 48.1%| +--------------------+ // |Sys 5.9% Idle 48.1%| +--------------------+
// |0%-------- 100%| // |0%-------- 100%|
@@ -75,11 +75,11 @@ cpu_screen(int rep, int display)
usni_wid = (lcd_wid - 4) / 4; // 4 gauges + 1 letter for each usni_wid = (lcd_wid - 4) / 4; // 4 gauges + 1 letter for each
gauge_wid = lcd_wid - 12; // room between [...] gauge_wid = lcd_wid - 12; // room between [...]
sock_send_string(sock, "widget_add C cpu0 string\n"); sock_send_string(sock, "widget_add C cpu string\n");
sprintf(buffer, "widget_set C cpu0 1 1 {CPU0[%*s]}\n", gauge_wid, ""); sprintf(buffer, "widget_set C cpu 1 1 {CPU [%*s]}\n", gauge_wid, "");
sock_send_string(sock, buffer); sock_send_string(sock, buffer);
sock_send_string(sock, "widget_add C cpu0% string\n"); sock_send_string(sock, "widget_add C cpu% string\n");
sprintf(buffer, "widget_set C cpu0%% 1 %d { 0.0%%}\n", lcd_wid - 5); sprintf(buffer, "widget_set C cpu%% 1 %d { 0.0%%}\n", lcd_wid - 5);
sock_send_string(sock, buffer); sock_send_string(sock, buffer);
sock_send_string(sock, "widget_add C usni string\n"); sock_send_string(sock, "widget_add C usni string\n");
sprintf(buffer, "widget_set C usni 1 2 {U%*sS%*sN%*sI%*s}\n", sprintf(buffer, "widget_set C usni 1 2 {U%*sS%*sN%*sI%*s}\n",
@@ -159,7 +159,7 @@ cpu_screen(int rep, int display)
} }
else { // 2-line display else { // 2-line display
sprintf_percent(tmp, cpu[CPU_BUF_SIZE][4]); sprintf_percent(tmp, cpu[CPU_BUF_SIZE][4]);
sprintf(buffer, "widget_set C cpu0%% %d 1 {%5s}\n", lcd_wid - 5, tmp); sprintf(buffer, "widget_set C cpu%% %d 1 {%5s}\n", lcd_wid - 5, tmp);
sock_send_string(sock, buffer); sock_send_string(sock, buffer);
n = (int) ((cpu[CPU_BUF_SIZE][4] * lcd_cellwid * gauge_wid) / 100.0); n = (int) ((cpu[CPU_BUF_SIZE][4] * lcd_cellwid * gauge_wid) / 100.0);
@@ -206,6 +206,7 @@ cpu_graph_screen(int rep, int display)
static int first = TRUE; static int first = TRUE;
static float cpu[CPU_BUF_SIZE]; static float cpu[CPU_BUF_SIZE];
static int cpu_past[LCD_MAX_WIDTH]; static int cpu_past[LCD_MAX_WIDTH];
static int gauge_hgt = 0;
int i, n = 0; int i, n = 0;
float value ; float value ;
@@ -213,6 +214,7 @@ cpu_graph_screen(int rep, int display)
if (first) { if (first) {
first = FALSE; first = FALSE;
gauge_hgt = (lcd_hgt > 2) ? (lcd_hgt - 1) : lcd_hgt;
sock_send_string(sock, "screen_add G\n"); sock_send_string(sock, "screen_add G\n");
sprintf(buffer, "screen_set G -name {CPU Graph: %s}\n", get_hostname()); sprintf(buffer, "screen_set G -name {CPU Graph: %s}\n", get_hostname());
@@ -228,9 +230,9 @@ cpu_graph_screen(int rep, int display)
sock_send_string(sock, buffer); sock_send_string(sock, buffer);
for (i = 1; i <= lcd_wid; i++) { for (i = 1; i <= lcd_wid; i++) {
sprintf(buffer, "widget_add G %d vbar\n", i); sprintf(buffer, "widget_add G bar%d vbar\n", i);
sock_send_string(sock, buffer); sock_send_string(sock, buffer);
sprintf(buffer, "widget_set G %d %d %d 0\n", i, i, lcd_hgt); sprintf(buffer, "widget_set G bar%d %d %d 0\n", i, i, lcd_hgt);
sock_send_string(sock, buffer); sock_send_string(sock, buffer);
cpu_past[i-1] = 0; cpu_past[i-1] = 0;
}; };
@@ -255,14 +257,14 @@ cpu_graph_screen(int rep, int display)
value /= CPU_BUF_SIZE; value /= CPU_BUF_SIZE;
// Scale result to available height (leave 1st line free when height > 2) // Scale result to available height (leave 1st line free when height > 2)
n = (int) (value * lcd_cellhgt * ((lcd_hgt > 2) ? (lcd_hgt - 1) : lcd_hgt)); n = (int) (value * lcd_cellhgt * gauge_hgt);
// Shift and update display the graph // Shift and update display the graph
for (i = 0; i < lcd_wid - 1; i++) { for (i = 0; i < lcd_wid - 1; i++) {
cpu_past[i] = cpu_past[i + 1]; cpu_past[i] = cpu_past[i + 1];
if (display) { if (display) {
sprintf(buffer, "widget_set G %d %d %d %d\n", sprintf(buffer, "widget_set G bar%d %d %d %d\n",
i + 1, i + 1, lcd_hgt, cpu_past[i]); i + 1, i + 1, lcd_hgt, cpu_past[i]);
sock_send_string(sock, buffer); sock_send_string(sock, buffer);
} }
@@ -271,7 +273,7 @@ cpu_graph_screen(int rep, int display)
// Save the newest entry and display it // Save the newest entry and display it
cpu_past[lcd_wid - 1] = n; cpu_past[lcd_wid - 1] = n;
if (display) { if (display) {
sprintf(buffer, "widget_set G %d %d %d %d\n", lcd_wid, lcd_wid, lcd_hgt, n); sprintf(buffer, "widget_set G bar%d %d %d %d\n", lcd_wid, lcd_wid, lcd_hgt, n);
sock_send_string(sock, buffer); sock_send_string(sock, buffer);
} }
+32 -31
View File
@@ -29,13 +29,15 @@ int
xload_screen (int rep, int display) xload_screen (int rep, int display)
{ {
static int first = 1; static int first = 1;
static int gauge_hgt = 0;
static double loads[LCD_MAX_WIDTH]; static double loads[LCD_MAX_WIDTH];
int n, i; int loadtop, i;
double loadmax = 0, factor, x; double loadmax = 0, factor;
int status = 0; int status = 0;
if (first) { // Only the first time this is ever called... if (first) { // Only the first time this is ever called...
first = 0; first = 0;
gauge_hgt = (lcd_hgt > 2) ? (lcd_hgt - 1) : lcd_hgt;
memset (loads, '\0', sizeof (double) * LCD_MAX_WIDTH); memset (loads, '\0', sizeof (double) * LCD_MAX_WIDTH);
sock_send_string (sock, "screen_add X\n"); sock_send_string (sock, "screen_add X\n");
@@ -43,9 +45,9 @@ xload_screen (int rep, int display)
sock_send_string (sock, buffer); sock_send_string (sock, buffer);
// Add the vbars... // Add the vbars...
for (i = 1; i < lcd_wid; i++) { for (i = 1; i < lcd_wid; i++) {
sprintf (tmp, "widget_add X %i vbar\n", i); sprintf (tmp, "widget_add X bar%i vbar\n", i);
sock_send_string (sock, tmp); sock_send_string (sock, tmp);
sprintf (tmp, "widget_set X %i %i %i 0\n", i, i, lcd_hgt); sprintf (tmp, "widget_set X bar%i %i %i 0\n", i, i, lcd_hgt);
sock_send_string (sock, tmp); sock_send_string (sock, tmp);
} }
// And add a title... // And add a title...
@@ -61,52 +63,51 @@ xload_screen (int rep, int display)
sock_send_string (sock, "widget_add X top string\n"); sock_send_string (sock, "widget_add X top string\n");
sprintf (tmp, "widget_set X zero %i %i 0\n", lcd_wid, lcd_hgt); sprintf (tmp, "widget_set X zero %i %i 0\n", lcd_wid, lcd_hgt);
sock_send_string (sock, tmp); sock_send_string (sock, tmp);
sprintf (tmp, "widget_set X top %i %i 1\n", lcd_wid, (lcd_hgt <= 2) ? 1 : 2); sprintf (tmp, "widget_set X top %i %i 1\n", lcd_wid, (lcd_hgt + 1 - gauge_hgt));
sock_send_string (sock, tmp); sock_send_string (sock, tmp);
} }
for (n = 0; n < (lcd_wid - 2); n++) // shift load history
loads[n] = loads[n + 1]; for (i = 0; i < (lcd_wid - 2); i++)
loads[i] = loads[i + 1];
// get new load value
machine_get_loadavg(&(loads[lcd_wid - 2])); machine_get_loadavg(&(loads[lcd_wid - 2]));
for (n = 0; n < lcd_wid - 1; n++) // determine max. load from history
if (loads[n] > loadmax) for (i = 0; i < lcd_wid - 1; i++)
loadmax = loads[n]; loadmax = max(loadmax, loads[i]);
n = (int) loadmax; // poor man's ceil()
if ((double) n < loadmax) loadtop = (int) loadmax;
n++; if (loadtop < loadmax)
loadtop++;
loadtop = max(1, loadtop);
sprintf (tmp, "widget_set X top %i %i %i\n", lcd_wid, (lcd_hgt <= 2) ? 1 : 2, n); factor = (double) (lcd_cellhgt * gauge_hgt) / (double) loadtop;
//if(display) sock_send_string(sock, tmp);
// display load
sprintf (tmp, "widget_set X top %i %i %i\n", lcd_wid, (lcd_hgt + 1 - gauge_hgt), loadtop);
sock_send_string (sock, tmp); sock_send_string (sock, tmp);
factor = (double) (lcd_cellhgt) * ((lcd_hgt <= 2) ? 2.0 : 1.0 * (lcd_hgt-1)) / (double) n; for (i = 0; i < lcd_wid - 1; i++) {
double x = loads[i] * factor;
for (n = 0; n < lcd_wid - 1; n++) { sprintf (tmp, "widget_set X bar%i %i %i %i\n", i + 1, i + 1, lcd_hgt, (int) x);
x = (loads[n] * factor);
sprintf (tmp, "widget_set X %i %i %i %i\n", n + 1, n + 1, lcd_hgt, (int) x);
//if(display) sock_send_string(sock, tmp);
sock_send_string (sock, tmp); sock_send_string (sock, tmp);
} }
if (loadmax < LOAD_MIN) {
status = BACKLIGHT_OFF;
}
if (loadmax > LOAD_MIN) {
status = BACKLIGHT_ON;
}
if (loads[lcd_wid - 2] > LOAD_MAX) {
status = BLINK_ON;
}
// And now the title... // And now the title...
if (lcd_hgt > 2) if (lcd_hgt > 2)
sprintf (tmp, "widget_set X title {LOAD %2.2f: %s}\n", loads[lcd_wid - 2], get_hostname()); sprintf (tmp, "widget_set X title {LOAD %2.2f: %s}\n", loads[lcd_wid - 2], get_hostname());
else else
sprintf (tmp, "widget_set X title 1 1 {%s %2.2f}\n", get_hostname(), loads[lcd_wid - 2]); sprintf (tmp, "widget_set X title 1 1 {%s %2.2f}\n", get_hostname(), loads[lcd_wid - 2]);
//if(display) sock_send_string(sock, tmp);
sock_send_string (sock, tmp); sock_send_string (sock, tmp);
// set return status depending on max & current load
status = (loadmax > LOAD_MIN) ? BACKLIGHT_ON : BACKLIGHT_OFF;
if (loads[lcd_wid - 2] > LOAD_MAX)
status = BLINK_ON;
return status; return status;
} // End xload_screen() } // End xload_screen()