X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=serial_console%2Fsample_sensors.c;h=7bfc7da7d5ae08312a99fa5b5ba21a29504e73c9;hb=43aae6dc3cf0a030f26d27f7f2c61f3708ff8604;hp=d81daa1267480416ad99d1f65646a55f9d27ee15;hpb=249ad38e27bf865a50112a5b4b58e8c590923034;p=svn42.git diff --git a/serial_console/sample_sensors.c b/serial_console/sample_sensors.c index d81daa1..7bfc7da 100644 --- a/serial_console/sample_sensors.c +++ b/serial_console/sample_sensors.c @@ -5,8 +5,7 @@ unsigned int collect_data(char *buffer, unsigned int size) char *cmd; if (size >= 8 && strncmp("movement", buffer, 8) == 0) return 1; - - if (size > 16 && strncmp("temp0:", buffer, 5) == 0) + else if (size > 15 && strncmp("temp0: Temp C:", buffer, 14) == 0) { if (asprintf(&cmd, "rrdtool update %s -t temp N:%s", rrd_temp_, buffer + 15)) { @@ -15,8 +14,16 @@ unsigned int collect_data(char *buffer, unsigned int size) free(cmd); } } - - if (size > 16 && strncmp("photo0:", buffer, 6) == 0) + else if (size > 7 && strncmp("temp0:", buffer, 6) == 0) + { + if (asprintf(&cmd, "rrdtool update %s -t temp N:%s", rrd_temp_, buffer + 7)) + { + /*printf("%s\n",cmd);*/ + system(cmd); + free(cmd); + } + } + else if (size > 15 && strncmp("photo0: Photo:", buffer, 14) == 0) { if (asprintf(&cmd, "rrdtool update %s -t light N:%s", rrd_light_, buffer + 15)) { @@ -25,6 +32,15 @@ unsigned int collect_data(char *buffer, unsigned int size) free(cmd); } } + else if (size > 8 && strncmp("photo0:", buffer, 7) == 0) + { + if (asprintf(&cmd, "rrdtool update %s -t light N:%s", rrd_light_, buffer + 7)) + { + /*printf("%s\n",cmd);*/ + system(cmd); + free(cmd); + } + } return 0; } @@ -60,7 +76,7 @@ void sample_sensors(int fd) buffer_offset+=num_byte; } - if (num_byte == 0 || (num_byte <0 && errno != EAGAIN)) + if (num_byte < 1) return; char linebreak_found=0; @@ -135,7 +151,6 @@ int establish_socket_connection(const char* path) int main(int argc, char* argv[]) { - int ret = 0; int socket_fd = 0; char *socket_file; if (argc > 1) @@ -143,19 +158,23 @@ int main(int argc, char* argv[]) else socket_file = default_socket_file_; - socket_fd = establish_socket_connection(socket_file); - if(socket_fd) - { - sample_sensors(socket_fd); - } - else + while (1) { - fprintf(stderr, "%s error, aborting..\n", socket_file); - ret=2; - } + socket_fd = establish_socket_connection(socket_file); + if(socket_fd) + { + sample_sensors(socket_fd); + } + else + { + fprintf(stderr, "%s error, retrying..\n", socket_file); + } - if(socket_fd > 0) - shutdown(socket_fd,SHUT_RDWR); - return(ret); + if(socket_fd > 0) + shutdown(socket_fd,SHUT_RDWR); + + sleep(2); + } + return 0; }