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))
{
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))
{
free(cmd);
}
}
+ else if (size > 8 && strncmp("photo0:", buffer, 7) == 0)
+ {
+ if (asprintf(&cmd, "rrdtool update %s -t light N:%s", rrd_light_, buffer + 8))
+ {
+ /*printf("%s\n",cmd);*/
+ system(cmd);
+ free(cmd);
+ }
+ }
return 0;
}
{
if (fd < 3)
return;
- struct timespec timeout;
+ struct timeval timeout;
fd_set fds_r;
unsigned int const buffer_size=1024;
unsigned int buffer_offset=0;
FD_ZERO(&fds_r);
FD_SET(fd,&fds_r);
timeout.tv_sec=1;
- timeout.tv_nsec=0;
+ timeout.tv_usec=0;
last_sample_time=time(0);
- while (select(fd+1,&fds_r,0,0,0) > 0)
+ while (select(fd+1,&fds_r,0,0,timeout) > -1)
{
curr_time=time(0);
if (FD_ISSET(fd,&fds_r))
buffer_offset+=num_byte;
}
- if (num_byte == 0 || (num_byte <0 && errno != EAGAIN))
+ if (num_byte < 1)
return;
char linebreak_found=0;
FD_SET(fd,&fds_r);
timeout.tv_sec=1;
- timeout.tv_nsec=0;
+ timeout.tv_usec=0;
}
}
int main(int argc, char* argv[])
{
- int ret = 0;
int socket_fd = 0;
char *socket_file;
if (argc > 1)
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;
}