first real run on the phytotron
This commit is contained in:
50
essai.c
50
essai.c
@@ -11,26 +11,36 @@
|
||||
|
||||
#include "core/utils.h"
|
||||
#include "core/sysmetrics.h"
|
||||
#include "serial/serial.h"
|
||||
#include "viz/curses/ecran.h"
|
||||
|
||||
int verbosity;
|
||||
|
||||
/* --------------------------------------------------------------- */
|
||||
int affiche_loadavg(int nbloops, int k)
|
||||
int affiche_valeurs(int sfd, int nbloops)
|
||||
{
|
||||
int idx, foo;
|
||||
float lds[3];
|
||||
char ligne[200], buff[200];
|
||||
float datas[4];
|
||||
|
||||
for (idx=0; idx<nbloops; idx++) {
|
||||
|
||||
foo = get_loadavg(lds);
|
||||
if (foo) fprintf(stderr, "get loadavg -> %d\n", foo);
|
||||
foo = getline_to(sfd, ligne, 100, 0);
|
||||
#if DEBUG_LEVEL
|
||||
if (foo) fprintf(stderr, "get values -> %d\n", foo);
|
||||
#endif
|
||||
|
||||
foo = aff7segs_float(stdscr, 4, 9, lds[0]);
|
||||
foo = aff7segs_float(stdscr, 14, 9, lds[1]);
|
||||
foo = aff7segs_float(stdscr, 24, 9, lds[2]);
|
||||
foo = parse4values(ligne, 'T', datas);
|
||||
#if DEBUG_LEVEL
|
||||
if (foo) fprintf(stderr, "parse -> %d\n", foo);
|
||||
#endif
|
||||
|
||||
values2temperature(datas);
|
||||
|
||||
foo = aff7segs_float(stdscr, 3, 5, datas[0]);
|
||||
foo = aff7segs_float(stdscr, 14, 5, datas[1]);
|
||||
foo = aff7segs_float(stdscr, 25, 5, datas[2]);
|
||||
|
||||
usleep(200*1000);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -42,25 +52,45 @@ fprintf(stderr, "end of pid %d\n", getpid());
|
||||
exit(0);
|
||||
}
|
||||
/* --------------------------------------------------------------- */
|
||||
void help(int k)
|
||||
{
|
||||
puts("options : ");
|
||||
puts("\t-d\tserial device to read.");
|
||||
puts("\t-v\tincrease verbosity.");
|
||||
exit(0);
|
||||
}
|
||||
/* --------------------------------------------------------------- */
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int opt, foo;
|
||||
int serial_in;
|
||||
char *device = "/dev/ttyACM0";
|
||||
|
||||
while ((opt = getopt(argc, argv, "v")) != -1) {
|
||||
while ((opt = getopt(argc, argv, "d:hv")) != -1) {
|
||||
switch (opt) {
|
||||
case 'd': device = optarg; break;
|
||||
case 'h': help(0); break;
|
||||
case 'v': verbosity++; break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
serial_in = prepare_UART(device, 9600);
|
||||
if (serial_in < 0) {
|
||||
fprintf(stderr, "%s : open device : error %d on %s\n",
|
||||
argv[0], serial_in, device);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
initscr();
|
||||
nonl(); cbreak(); noecho();
|
||||
keypad(stdscr, TRUE); /* acces aux touches 'curseur' */
|
||||
fond_ecran(" Demonstrator ");
|
||||
|
||||
affiche_loadavg(10000, 0);
|
||||
affiche_valeurs(serial_in, 10000);
|
||||
|
||||
/*
|
||||
* plop, on a fini, il faut restaurer la console
|
||||
|
||||
Reference in New Issue
Block a user