diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2023-07-15 14:58:40 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2023-07-15 14:58:40 +0200 |
| commit | 0c0a6ebf44d5e9b4c0a99b3d9b353a522439dd49 (patch) | |
| tree | 315b2486f3d5dbaf1cb17c6251cf9146fe2daa75 | |
| parent | 3440874807ea71ee599e5199eb40f24be3dcc9ac (diff) | |
Minor changes
| -rw-r--r-- | src/publisher.c | 22 | ||||
| -rw-r--r-- | src/utils.h | 2 |
2 files changed, 21 insertions, 3 deletions
diff --git a/src/publisher.c b/src/publisher.c index c9f702e..a42b41b 100644 --- a/src/publisher.c +++ b/src/publisher.c @@ -79,7 +79,25 @@ int main (int argc, char *argv []) void publish(void *publisher, char *filepath, char* client, long int interval){ printf("Publish!\n"); char buffer[ZMQ_MSG_SIZE]; - sprintf(buffer,"%s\n%s\n%ld",ZMQ_TOKEN,__key,interval); - // TODO: Send every lines of the file + sprintf(buffer,"%s\n%s\n%ld\n",ZMQ_TOKEN,__key,interval); + int msglen=strlen(buffer); + + FILE *fptr; + char * line = NULL; + size_t len = 0; + ssize_t read; + fptr=fopen(filepath,"r"); + while ((read = getline(&line, &len, fptr)) != -1) { + if((read+msglen) <ZMQ_MSG_SIZE){ + strcat(buffer,line); + msglen+=read; + } else { + zmq_send (publisher, buffer, ZMQ_MSG_SIZE, 0); + sprintf(buffer,"%s\n%s\n%ld\n",ZMQ_TOKEN,__key,interval); + strcat(buffer,line); + msglen=strlen(buffer); + } + } + fclose(fptr); zmq_send (publisher, buffer, ZMQ_MSG_SIZE, 0); }
\ No newline at end of file diff --git a/src/utils.h b/src/utils.h index 79d1a9a..bedcd36 100644 --- a/src/utils.h +++ b/src/utils.h @@ -9,7 +9,7 @@ #define INA260_SYSFS "/sys/kernel/ina260" #define INA260_POWER_REGISTER "registers/power" #define ZMQ_TOKEN "ina260-zmq-publisher" -#define ZMQ_MSG_SIZE 255 +#define ZMQ_MSG_SIZE 255*10 #define STR(symbol) #symbol #define STRINGIFY(symbol) STR(symbol) |
