]> mj.ucw.cz Git - arexx.git/blobdiff - arexxd.c
Logging to RRD and MQTT can be configured (by #define's)
[arexx.git] / arexxd.c
index 1bde4a26014be519c73ac4f506797038c9ef12b4..df1877b627ad99de529a484ebbe7aea5d5e1d991 100644 (file)
--- a/arexxd.c
+++ b/arexxd.c
@@ -1,7 +1,7 @@
 /*
  *     Linux Interfece for Arexx Data Loggers
  *
- *     (c) 2011-2018 Martin Mares <mj@ucw.cz>
+ *     (c) 2011-2020 Martin Mares <mj@ucw.cz>
  */
 
 #include <stdio.h>
@@ -34,6 +34,9 @@
 #define MAX_FUTURE_TIME 300
 #define IGNORE_UNKNOWN_SENSORS
 
+#undef LOG_TO_RRD
+#undef LOG_TO_MQTT
+
 typedef unsigned char byte;
 typedef unsigned int uint;
 static libusb_context *usb_ctxt;
@@ -104,6 +107,8 @@ static void log_pkt(char *fmt, ...)
 
 /*** MQTT interface ***/
 
+#ifdef LOG_TO_MQTT
+
 #include <mosquitto.h>
 
 static struct mosquitto *mosq;
@@ -155,8 +160,12 @@ static void mqtt_point(time_t t, const char *name, double val, char *unit UNUSED
        mqtt_publish(topic, "%.3f %lld", val, (long long) t);
 }
 
+#endif
+
 /*** RRD interface ***/
 
+#ifdef LOG_TO_RRD
+
 #include <rrd.h>
 
 #define MAX_ARGS 20
@@ -231,6 +240,8 @@ static void rrd_point(time_t t, const char *name, double val, char *unit)
        }
 }
 
+#endif
+
 /*** Transforms ***/
 
 #define TIME_OFFSET 946681200          // Timestamp of 2000-01-01 00:00:00
@@ -298,8 +309,12 @@ static void cooked_point(time_t t, uint id, double val, char *unit, int q)
        }
 
        data_point_counter++;
+#ifdef LOG_TO_RRD
        rrd_point(t, name, val2, unit);
+#endif
+#ifdef LOG_TO_MQTT
        mqtt_point(t, name, val2, unit);
+#endif
 }
 
 static void raw_point(uint t, uint id, int raw, int q)
@@ -763,7 +778,9 @@ int main(int argc, char **argv)
                use_syslog = 1;
        }
 
+#ifdef LOG_TO_MQTT
        mqtt_init();
+#endif
 
        struct sigaction sa = { .sa_handler = sigterm_handler };
        sigaction(SIGTERM, &sa, NULL);