From f29c8c330c0061b9f4958e81e0f4b3d1cd395a73 Mon Sep 17 00:00:00 2001 From: tth Date: Tue, 5 Feb 2019 12:16:27 +0100 Subject: [PATCH] introdicing the so cute minidigits ! --- storage/Makefile | 0 storage/t.c | 0 viz/curses/Makefile | 7 +++- viz/curses/ecran.c | 2 +- viz/curses/ecran.h | 2 + viz/curses/minidigits.c | 88 +++++++++++++++++++++++++++++++++++++++++ viz/curses/t.c | 37 ++++++++++++++++- 7 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 storage/Makefile create mode 100644 storage/t.c create mode 100644 viz/curses/minidigits.c diff --git a/storage/Makefile b/storage/Makefile new file mode 100644 index 0000000..e69de29 diff --git a/storage/t.c b/storage/t.c new file mode 100644 index 0000000..e69de29 diff --git a/viz/curses/Makefile b/viz/curses/Makefile index 825e937..6f076e9 100644 --- a/viz/curses/Makefile +++ b/viz/curses/Makefile @@ -1,7 +1,9 @@ # --------------- *** COPT = -Wall -g -fpic -DTRACE=0 -OBJS = ecran.o 7segments.o waterfall.o vumetre.o +OBJS = ecran.o 7segments.o waterfall.o vumetre.o \ + minidigits.o + ALIB = ../libdd2m-viz.a # --------------- *** @@ -23,6 +25,9 @@ waterfall.o: waterfall.c Makefile ecran.h vumetre.o: vumetre.c Makefile ecran.h gcc $(COPT) -c $< +minidigits.o: minidigits.c Makefile ecran.h + gcc $(COPT) -c $< + # --------------- *** t: t.c Makefile $(ALIB) ecran.h diff --git a/viz/curses/ecran.c b/viz/curses/ecran.c index 4ba94c9..7f72116 100644 --- a/viz/curses/ecran.c +++ b/viz/curses/ecran.c @@ -21,7 +21,7 @@ fprintf(stderr, "%s [%s]\n", __func__, txt); #endif standout(); -mvhline(LINES-1, 0, '~', COLS); +mvhline(LINES-1, 0, ' ', COLS); mvaddch(LINES-1, 0, "\\|/-"[(pass++)%4]); mvaddstr(LINES-1, 2, txt); standend(); diff --git a/viz/curses/ecran.h b/viz/curses/ecran.h index f7770dd..8f317d3 100644 --- a/viz/curses/ecran.h +++ b/viz/curses/ecran.h @@ -10,6 +10,8 @@ int aff7segs_digit(WINDOW * win, int lig, int col, char digit); int aff7segs_short(WINDOW * win, int lig, int col, short value); int aff7segs_float(WINDOW * win, int lig, int col, float value); +int minidigit_0(WINDOW *win, int lig, int col, char digit, int k); + WINDOW * open_waterfall(char *title, int flags); int plot_waterfall(WINDOW *wf, int flags, float values[4]); diff --git a/viz/curses/minidigits.c b/viz/curses/minidigits.c new file mode 100644 index 0000000..0f305f0 --- /dev/null +++ b/viz/curses/minidigits.c @@ -0,0 +1,88 @@ +/* + * DD2 Monitoring + * + * mini digits + */ + +#include +#include +#include +#include +#include +#include + +#include "ecran.h" + +extern int verbosity; + +/* ---------------------------------------------------------------- */ +static void makedot(WINDOW *win, int li, int col, int ch) +{ +if ('_'==ch) { + mvwaddch(win, li, col, ' '); + mvwaddch(win, li, col+1, ' '); + } +else { + wstandout(win); + mvwaddch(win, li, col, ' '); + mvwaddch(win, li, col+1, ' '); + wstandend(win); + } +} +/* ---------------------------------------------------------------- */ + +int minidigit_0(WINDOW *win, int lig, int col, char digit, int k) +{ +static char LX[] = "_X_X_X_X_X_X_X_"; +static char L0[] = "XXXX_XX_XX_XXXX"; +static char L1[] = "__X__X__X__X__X"; +static char L2[] = "XXX__XXXXX__XXX"; +static char L3[] = "XXX__XXXX__XXXX"; +static char L4[] = "X_XX_XXXX__X__X"; +static char L5[] = "XXXX__XXX__XXXX"; +static char L6[] = "XXXX__XXXX_XXXX"; +static char L7[] = "XXX__X__X__X__X"; +static char L8[] = "XXXX_XXXXX_XXXX"; +static char L9[] = "XXXX_XXXX__XXXX"; + +static char Lsp[] = "_______________"; /* space */ +static char Lmo[] = "______XXX______"; /* moins */ +static char Lco[] = "____X_____X____"; + +char *cptr; +int l, c; + +switch (digit) { + + case '0': cptr = L0; break; + case '1': cptr = L1; break; + case '2': cptr = L2; break; + case '3': cptr = L3; break; + case '4': cptr = L4; break; + case '5': cptr = L5; break; + case '6': cptr = L6; break; + case '7': cptr = L7; break; + case '8': cptr = L8; break; + case '9': cptr = L9; break; + + case ' ': cptr = Lsp; break; + case '-': cptr = Lmo; break; + case ':': cptr = Lco; break; + + default: cptr = LX; break; + + } + +for (l=0; l<5; l++) { + for (c=0; c<3; c++) { + + makedot(win, l+lig, (c*2)+col, *cptr++); + + } + } + +wrefresh(win); + +return 0; +} +/* ---------------------------------------------------------------- */ diff --git a/viz/curses/t.c b/viz/curses/t.c index a74f4ab..50d1565 100644 --- a/viz/curses/t.c +++ b/viz/curses/t.c @@ -11,6 +11,40 @@ int verbosity; +/* ---------------------------------------------------------------- */ +int demo_minidigits(int nbl, int k) +{ +int loop, foo; +char chaine[100]; +struct tm *p_tms; +time_t temps; + +for (loop=0; loop