first real run on the phytotron

This commit is contained in:
phyto
2019-03-28 12:04:40 +01:00
parent 17ec8dd47d
commit b47e467d21
5 changed files with 51 additions and 17 deletions

50
essai.c
View File

@@ -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