add -r and return 1 if clouds<1800

This commit is contained in:
eddyem 2020-10-06 01:56:44 +03:00
parent 2c8b8d97df
commit d5825ed68b
4 changed files with 12 additions and 8 deletions

View File

@ -7,12 +7,13 @@ Check meteostation parameters
-d, --devname=arg serial device name -d, --devname=arg serial device name
-h, --help show this help -h, --help show this help
-r, --raw show raw information from meteostation
-s, --speed=arg baudrate (default: 9600) -s, --speed=arg baudrate (default: 9600)
Output: Output:
Rain=0/1 Rain=0/1
Clouds=0/1 Clouds=xxxx
Return value: Return value:
0 if no rain, 1 if there's rainy 0 if no rain and Clouds>1800, 1 if there's rainy or Clouds>1800

View File

@ -1,5 +1,5 @@
/* /*
* This file is part of the ttyterm project. * This file is part of the weatherchk project.
* Copyright 2020 Edward V. Emelianov <edward.emelianoff@gmail.com>. * Copyright 2020 Edward V. Emelianov <edward.emelianoff@gmail.com>.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -33,7 +33,7 @@ static glob_pars G;
// default global parameters // default global parameters
glob_pars const Gdefault = { glob_pars const Gdefault = {
.speed = 9600, .speed = 9600,
.ttyname = "/dev/ttyUSB0", .ttyname = "/dev/ttyS3",
}; };
/* /*
@ -45,6 +45,7 @@ static myoption cmdlnopts[] = {
{"help", NO_ARGS, NULL, 'h', arg_int, APTR(&help), _("show this help")}, {"help", NO_ARGS, NULL, 'h', arg_int, APTR(&help), _("show this help")},
{"speed", NEED_ARG, NULL, 's', arg_int, APTR(&G.speed), _("baudrate (default: 9600)")}, {"speed", NEED_ARG, NULL, 's', arg_int, APTR(&G.speed), _("baudrate (default: 9600)")},
{"devname", NEED_ARG, NULL, 'd', arg_string, APTR(&G.ttyname), _("serial device name")}, {"devname", NEED_ARG, NULL, 'd', arg_string, APTR(&G.ttyname), _("serial device name")},
{"raw", NO_ARGS, NULL, 'r', arg_int, APTR(&G.showraw), _("show raw information from meteostation")},
end_option end_option
}; };

View File

@ -1,5 +1,5 @@
/* /*
* This file is part of the ttyterm project. * This file is part of the weatherchk project.
* Copyright 2020 Edward V. Emelianov <edward.emelianoff@gmail.com>. * Copyright 2020 Edward V. Emelianov <edward.emelianoff@gmail.com>.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -26,6 +26,7 @@
typedef struct{ typedef struct{
int speed; // baudrate int speed; // baudrate
char *ttyname; // device name char *ttyname; // device name
int showraw; // show raw information
} glob_pars; } glob_pars;

View File

@ -1,5 +1,5 @@
/* /*
* This file is part of the ttyterm project. * This file is part of the weatherchk project.
* Copyright 2020 Edward V. Emelianov <edward.emelianoff@gmail.com>. * Copyright 2020 Edward V. Emelianov <edward.emelianoff@gmail.com>.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
@ -80,10 +80,11 @@ int main(int argc, char **argv){
char *eol = strchr(ptr, '\n'); char *eol = strchr(ptr, '\n');
if(eol) *eol = 0; if(eol) *eol = 0;
DBG("Now: %s\n", ptr); DBG("Now: %s\n", ptr);
if(G->showraw) green("%s\n", ptr);
double rain = 1., clouds = 1.; double rain = 1., clouds = 1.;
if(!getpar(ptr, &rain, "RT")) printf("Rain=%g\n", rain); if(!getpar(ptr, &rain, "RT")) printf("Rain=%g\n", rain);
if(!getpar(ptr, &clouds, "WK")) printf("Clouds=%g\n", clouds); if(!getpar(ptr, &clouds, "WU")) printf("Clouds=%g\n", clouds);
close_tty(&dev); close_tty(&dev);
if(rain > 0.1) return 1; if(rain > 0.1 || clouds < 1800.) return 1;
return 0; return 0;
} }