From 33c54437949aaefacc3326a1c2d577db072cbacd Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Sun, 16 Jul 2023 14:50:53 +0200 Subject: Minor changes --- src/logger.c | 12 +++++++++++- src/publisher.c | 14 ++++++++++++-- src/subscriber.c | 15 +++++++++++++-- 3 files changed, 36 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/logger.c b/src/logger.c index 4e9aee9..842aec7 100644 --- a/src/logger.c +++ b/src/logger.c @@ -8,6 +8,7 @@ #include #include "utils.h" #include +#include #ifndef LOGGER_DELAY #define LOGGER_DELAY 0 @@ -18,6 +19,14 @@ char *__client; char __logdir[STATIC_LEN]; char __regpower[STATIC_LEN]; int __loginterval; +unsigned char __stop=0; + +void sighandler(int signo){ + if (signo == SIGINT){ + printf("Stopping...\n"); + __stop=1; + } +} int main (int argc, char *argv []) { @@ -41,6 +50,7 @@ int main (int argc, char *argv []) strcat(__regpower,INA260_POWER_REGISTER); //----- Sanity checks + signal(SIGINT,sighandler); mkdirp(__logdir); if(__loginterval #include #include +#include #include "utils.h" @@ -12,9 +13,17 @@ char *__interface; char *__ip; int __loginterval; int __port; +unsigned char __stop=0; void publish(void *publisher, char *filepath, char* client, long int interval); +void sighandler(int signo){ + if (signo == SIGINT){ + printf("Stopping...\n"); + __stop=1; + } +} + int main (int argc, char *argv []) { if(argc != 6){ @@ -30,6 +39,7 @@ int main (int argc, char *argv []) __key=argv[5]; //----- Sanity checks + signal(SIGINT,sighandler); if(__loginterval #include #include - +#include #include "utils.h" +unsigned char __stop=0; +void sighandler(int signo){ + if (signo == SIGINT){ + printf("Stopping...\n"); + __stop=1; + } +} + int main (int argc, char *argv []) { if(argc != 3){ @@ -18,6 +26,7 @@ int main (int argc, char *argv []) //----- Various inits mkdirp(cdatadir); + signal(SIGINT,sighandler); //----- Init ZMQ void *context = zmq_ctx_new (); @@ -35,8 +44,10 @@ int main (int argc, char *argv []) //----- Listen char buffer[ZMQ_MSG_SIZE]; int size; - while(1){ + while(!__stop){ size=zmq_recv (subscriber, buffer, ZMQ_MSG_SIZE-1, 0); + if(size<=0) + continue; buffer[size < ZMQ_MSG_SIZE ? size : ZMQ_MSG_SIZE - 1] = '\0'; //----- Read buffer char *token = strtok(buffer, "\n"); -- cgit v1.2.3