boilerplate for ncurses interface
This commit is contained in:
parent
7e376763b8
commit
6fe2c54cfb
21
viz/curses/7segments.c
Normal file
21
viz/curses/7segments.c
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
|
21
viz/curses/Makefile
Normal file
21
viz/curses/Makefile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# --------------- ***
|
||||||
|
|
||||||
|
ecran.o: ecran.c Makefile ecran.h
|
||||||
|
gcc -Wall -c $<
|
||||||
|
|
||||||
|
7segments.o: 7segments.c Makefile
|
||||||
|
gcc -Wall -c $<
|
||||||
|
|
||||||
|
waterfall.o: waterfall.c Makefile
|
||||||
|
gcc -Wall -c $<
|
||||||
|
|
||||||
|
# --------------- ***
|
||||||
|
|
||||||
|
OBJ = ecran.o waterfall.o 7segments.o
|
||||||
|
|
||||||
|
t: t.c Makefile $(OBJ) ecran.h
|
||||||
|
gcc -Wall $< $(OBJ) -lncurses -o $@
|
||||||
|
|
||||||
|
# --------------- ***
|
2
viz/curses/README.md
Normal file
2
viz/curses/README.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Dataviz with AsciiArt
|
||||||
|
|
50
viz/curses/ecran.c
Normal file
50
viz/curses/ecran.c
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <strings.h>
|
||||||
|
#include <getopt.h>
|
||||||
|
#include <ncurses.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include "ecran.h"
|
||||||
|
|
||||||
|
int verbosity;
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
void barre_inverse(char c, int ligne)
|
||||||
|
{
|
||||||
|
int foo;
|
||||||
|
standout();
|
||||||
|
for (foo=0; foo<COLS; foo++)
|
||||||
|
mvaddch(ligne, foo, c);
|
||||||
|
standend();
|
||||||
|
/* refresh(); */
|
||||||
|
}
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
int fond_ecran(void)
|
||||||
|
{
|
||||||
|
#if TRACE
|
||||||
|
int foo;
|
||||||
|
char buffer[200];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
barre_inverse('+', 0);
|
||||||
|
standout();
|
||||||
|
mvaddstr(0, 2, " DD2 MONITORING by tTh 2019 ");
|
||||||
|
#if TRACE
|
||||||
|
sprintf(buffer, " ecran %dx%d ", COLS, LINES);
|
||||||
|
foo = strlen(buffer);
|
||||||
|
mvaddstr(0, COLS-2-foo, buffer);
|
||||||
|
#endif
|
||||||
|
standend();
|
||||||
|
refresh();
|
||||||
|
|
||||||
|
#if TRACE
|
||||||
|
fprintf(stderr, "HAUT %3d\n", HAUT);
|
||||||
|
fprintf(stderr, "HAUT_1 %3d BARRE_1 %3d\n", HAUT_1, BARRE_1);
|
||||||
|
fprintf(stderr, "HAUT_2 %3d BARRE_2 %3d\n", HAUT_2, BARRE_2);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* ---------------------------------------------------------------- */
|
6
viz/curses/ecran.h
Normal file
6
viz/curses/ecran.h
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
int fond_ecran(void);
|
||||||
|
|
||||||
|
|
||||||
|
WINDOW * open_waterfall(char *title, int flags);
|
73
viz/curses/t.c
Normal file
73
viz/curses/t.c
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <strings.h>
|
||||||
|
#include <getopt.h>
|
||||||
|
#include <ncurses.h>
|
||||||
|
|
||||||
|
#include "ecran.h"
|
||||||
|
|
||||||
|
int verbosity;
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
void demo(int nbl, int k)
|
||||||
|
{
|
||||||
|
int loop;
|
||||||
|
char line[100];
|
||||||
|
WINDOW *water;
|
||||||
|
|
||||||
|
water = open_waterfall("premier essai", 0);
|
||||||
|
|
||||||
|
for (loop=0; loop<nbl; loop++) {
|
||||||
|
|
||||||
|
sprintf(line, "%04X %04X", loop, rand()&0xffff);
|
||||||
|
mvaddstr(5, 5, line);
|
||||||
|
|
||||||
|
sleep(1);
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
static void finish(int signal)
|
||||||
|
{
|
||||||
|
endwin(); exit(0);
|
||||||
|
}
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
int main (int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int opt;
|
||||||
|
|
||||||
|
/* set some default values */
|
||||||
|
verbosity = 0;
|
||||||
|
|
||||||
|
|
||||||
|
while ((opt = getopt(argc, argv, "v")) != -1) {
|
||||||
|
switch (opt) {
|
||||||
|
case 'v': verbosity++; break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
fprintf(stderr, "%s : uh ?", argv[0]);
|
||||||
|
exit(1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
initscr();
|
||||||
|
nonl(); cbreak(); noecho();
|
||||||
|
|
||||||
|
keypad(stdscr, TRUE); /* acces aux touches 'curseur' */
|
||||||
|
|
||||||
|
fond_ecran();
|
||||||
|
|
||||||
|
demo(1024, 0);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* plop, on a fini, restaurer la console
|
||||||
|
*/
|
||||||
|
finish(0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* ---------------------------------------------------------------- */
|
59
viz/curses/waterfall.c
Normal file
59
viz/curses/waterfall.c
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* DD2 Monitoring
|
||||||
|
*
|
||||||
|
* ncurses waterfall interface
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <strings.h>
|
||||||
|
#include <getopt.h>
|
||||||
|
#include <ncurses.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include "ecran.h"
|
||||||
|
|
||||||
|
extern int verbosity;
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
WINDOW *open_waterfall(char *title, int flags)
|
||||||
|
{
|
||||||
|
WINDOW *win;
|
||||||
|
int l, c, w, h;
|
||||||
|
|
||||||
|
l = 2; c = 1;
|
||||||
|
w = COLS - 2; h = LINES -3;
|
||||||
|
|
||||||
|
win = newwin(h, w, l, c);
|
||||||
|
|
||||||
|
return win;
|
||||||
|
}
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
int plot_waterfall(WINDOW *wf, float values[4])
|
||||||
|
{
|
||||||
|
#define TL 1000
|
||||||
|
int foo;
|
||||||
|
char tag, ligne[TL+1];
|
||||||
|
|
||||||
|
for(foo=0; foo<TL; foo++) *(ligne+foo) = '-';
|
||||||
|
|
||||||
|
for(foo=0; foo<4; foo++) {
|
||||||
|
tag = "ATOX"[foo];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
int close_waterfall(WINDOW *wf, int notused)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (NULL == wf) {
|
||||||
|
fprintf(stderr, "%s wf is null\n", __func__);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* ---------------------------------------------------------------- */
|
Loading…
Reference in New Issue
Block a user