aboutsummaryrefslogtreecommitdiffstats
path: root/analysis/rtt/src/mqtt_client.c
diff options
context:
space:
mode:
authorFilip Wandzio <contact@philw.dev>2025-09-04 22:25:39 +0200
committerFilip Wandzio <contact@philw.dev>2025-09-04 22:25:39 +0200
commit1ba21da6cbc63c0c549fb92731e25bedc482eb51 (patch)
treeddf6fc2259a2495f8de336a07873cc3c6796785e /analysis/rtt/src/mqtt_client.c
parente00f3a9ede1b8e46b480bd68daf48da0bb08acae (diff)
downloade1-1ba21da6cbc63c0c549fb92731e25bedc482eb51.tar.gz
e1-1ba21da6cbc63c0c549fb92731e25bedc482eb51.zip
Unify the directory, add new analysis methods, unify the code style
Signed-off-by: Filip Wandzio <contact@philw.dev>
Diffstat (limited to 'analysis/rtt/src/mqtt_client.c')
-rw-r--r--analysis/rtt/src/mqtt_client.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/analysis/rtt/src/mqtt_client.c b/analysis/rtt/src/mqtt_client.c
new file mode 100644
index 0000000..43a06d8
--- /dev/null
+++ b/analysis/rtt/src/mqtt_client.c
@@ -0,0 +1,48 @@
1#include "mqtt_client.h"
2#include "logger.h"
3#include <stdio.h>
4#include <stdlib.h>
5
6#define WINDOW_SEC 1
7
8static void on_message(struct mosquitto *mosq, void *userdata,
9 const struct mosquitto_message *msg);
10
11int mqtt_client_init(mqtt_client_t *client, const char *broker_address,
12 int port, const char *topic) {
13 mosquitto_lib_init();
14 client->mosq = mosquitto_new(NULL, true, NULL);
15 if (!client->mosq) {
16 fprintf(stderr, "Cannot create MQTT client\n");
17 return 1;
18 }
19
20 mosquitto_message_callback_set(client->mosq, on_message);
21
22 if (mosquitto_connect(client->mosq, broker_address, port, 60) !=
23 MOSQ_ERR_SUCCESS) {
24 fprintf(stderr, "Nie można połączyć się z brokerem MQTT\n");
25 return 1;
26 }
27
28 if (mosquitto_subscribe(client->mosq, NULL, topic, 0) != MOSQ_ERR_SUCCESS) {
29 fprintf(stderr, "Cannot subscribe to topic\n");
30 return 1;
31 }
32
33 return 0;
34}
35
36void mqtt_client_cleanup(mqtt_client_t *client) {
37 mosquitto_destroy(client->mosq);
38 mosquitto_lib_cleanup();
39}
40
41void mqtt_client_loop(mqtt_client_t *client) {
42 mosquitto_loop_forever(client->mosq, -1, 1);
43}
44
45static void on_message(struct mosquitto *mosq, void *userdata,
46 const struct mosquitto_message *msg) {
47 logger_handle_message(msg->payload, msg->payloadlen);
48}