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