diff --git a/src/client.c b/src/client.c index d4a6c5c..35a62c6 100644 --- a/src/client.c +++ b/src/client.c @@ -8,32 +8,40 @@ #include "utils.h" - int main (int argc, char *argv []) { - // Socket to talk to server - printf ("Collecting updates from weather server...\n"); - void *context = zmq_ctx_new (); - void *subscriber = zmq_socket (context, ZMQ_SUB); - int rc = zmq_connect (subscriber, "tcp://"STRINGIFY(PUBLISHER_ADDR)":"STRINGIFY(PUBLISHER_PORT)); - assert (rc == 0); + if(argc != 3){ + printf("Usage: %s
",argv[0]); + exit(1); + } - // Subscribe to zipcode, default is NYC, 10001 - // Subscribe to zipcode, default is NYC, 10001 - const char *filter = "Hello"; - rc = zmq_setsockopt (subscriber, ZMQ_SUBSCRIBE, - filter, strlen(filter)); - assert (rc == 0); + char *ip=argv[1]; + int port=atoi(argv[2]); - // Process 100 updates - int update_nbr; - char buffer[10]; - for (update_nbr = 0; update_nbr < 100; update_nbr++) { - zmq_recv (subscriber, buffer, 10, 0); - printf("Received!"); - } + // Socket to talk to server + void *context = zmq_ctx_new (); + void *subscriber = zmq_socket (context, ZMQ_SUB); + char bindto[30]; + sprintf(bindto,"tcp://%s:%d",ip,port); + int rc = zmq_connect (subscriber, bindto); + if(rc!=0){ + printf("Failed to bind zmq on %s\n",bindto); + exit(1); + } + rc = zmq_setsockopt (subscriber, ZMQ_SUBSCRIBE, + ZMQ_TOKEN, strlen(ZMQ_TOKEN)); - zmq_close (subscriber); - zmq_ctx_destroy (context); - return 0; + + + char buffer[10]; + zmq_recv (subscriber, buffer, 10, 0); + printf("Received!"); + + + + + zmq_close (subscriber); + zmq_ctx_destroy (context); + + return 0; } \ No newline at end of file diff --git a/src/publisher.c b/src/publisher.c index bc1af69..51096ef 100644 --- a/src/publisher.c +++ b/src/publisher.c @@ -14,7 +14,7 @@ char *__logdir; int __loginterval; int __port; -void publish(char *filepath, char* client, int interval); +void publish(void *publisher, char *filepath, char* client, int interval); int main (int argc, char *argv []) { @@ -60,7 +60,7 @@ int main (int argc, char *argv []) } // Send current one if(FILE_EXISTS(logfile)){ - publish(logfile,client,interval); + publish(publisher,logfile,client,interval); remove(logfile); } } @@ -88,6 +88,7 @@ int main (int argc, char *argv []) return 0; } -void publish(char *filepath, char* client, int interval){ +void publish(void *publisher, char *filepath, char* client, int interval){ printf("Publish!\n"); + zmq_send (publisher, ZMQ_TOKEN, strlen(ZMQ_TOKEN), 0); } \ No newline at end of file diff --git a/src/utils.h b/src/utils.h index af74328..15b71b1 100644 --- a/src/utils.h +++ b/src/utils.h @@ -6,9 +6,9 @@ #include #define MIN_INTERVAL 30 - #define INA260_SYSFS "/sys/kernel/ina260" #define INA260_POWER_REGISTER "registers/power" +#define ZMQ_TOKEN "ina260-zmq-publisher" #define STR(symbol) #symbol #define STRINGIFY(symbol) STR(symbol)