summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2023-07-15 14:58:40 +0200
committerLoic Guegan <manzerbredes@mailbox.org>2023-07-15 14:58:40 +0200
commit0c0a6ebf44d5e9b4c0a99b3d9b353a522439dd49 (patch)
tree315b2486f3d5dbaf1cb17c6251cf9146fe2daa75
parent3440874807ea71ee599e5199eb40f24be3dcc9ac (diff)
Minor changes
-rw-r--r--src/publisher.c22
-rw-r--r--src/utils.h2
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)