81 lines
1.6 KiB
C
81 lines
1.6 KiB
C
/*
|
|
* DD2 Monitoring
|
|
*
|
|
* ncurses seven segment display
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <strings.h>
|
|
#include <getopt.h>
|
|
#include <ncurses.h>
|
|
|
|
#include "ecran.h"
|
|
|
|
int verbosity;
|
|
|
|
/* ---------------------------------------------------------------- */
|
|
int vumetre_0(WINDOW *win, int lig, int col, float val, int larg)
|
|
{
|
|
int foo, posc;
|
|
char ligne[100];
|
|
|
|
#if DEBUG_LEVEL
|
|
fprintf(stderr, ">>> %s ( %p %d %d %f %d )\n",
|
|
__func__, win, lig, col, val, larg);
|
|
#endif
|
|
|
|
posc = (int)(val * (float)larg);
|
|
|
|
sprintf(ligne, "%6.3f", val);
|
|
mvwaddstr(win, lig, 2, ligne);
|
|
|
|
for (foo=0; foo<larg; foo++) {
|
|
mvwaddch(win, lig, col+foo, " #"[foo < posc]);
|
|
if (foo & 1) {
|
|
mvwaddch(win, lig-1, col+foo, '\\');
|
|
mvwaddch(win, lig+1, col+foo, '/');
|
|
}
|
|
}
|
|
wrefresh(win);
|
|
|
|
return 0;
|
|
}
|
|
/* ---------------------------------------------------------------- */
|
|
int vumetre_1(WINDOW *win, int lig, int col, float val, int larg)
|
|
{
|
|
int foo, posc;
|
|
char ligne[100];
|
|
|
|
#if DEBUG_LEVEL
|
|
fprintf(stderr, ">>> %s ( %p %d %d %f %d )\n",
|
|
__func__, win, lig, col, val, larg);
|
|
#endif
|
|
|
|
posc = (int)(val * (float)larg);
|
|
|
|
sprintf(ligne, "%6.3f", val);
|
|
mvwaddstr(win, lig, 2, ligne);
|
|
|
|
for (foo=0; foo<larg; foo++) {
|
|
if (foo < posc) {
|
|
wstandout(win);
|
|
mvwaddch(win, lig, col+foo, '|');
|
|
wstandend(win);
|
|
}
|
|
else {
|
|
mvwaddch(win, lig, col+foo, '|');
|
|
}
|
|
if (foo & 2) {
|
|
mvwaddch(win, lig-1, col+foo, '|');
|
|
mvwaddch(win, lig+1, col+foo, '|');
|
|
}
|
|
}
|
|
wrefresh(win);
|
|
|
|
return 0;
|
|
}
|
|
/* ---------------------------------------------------------------- */
|
|
/* ---------------------------------------------------------------- */
|
|
|