From 78740ba7206ec0895be4aebedd308d409bc1dbb5 Mon Sep 17 00:00:00 2001 From: jdlugosz963 Date: Tue, 30 Jul 2024 11:57:23 +0200 Subject: Add new command: toggle-blinker. --- src/mqtt-client.rkt | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/mqtt-client.rkt (limited to 'src/mqtt-client.rkt') diff --git a/src/mqtt-client.rkt b/src/mqtt-client.rkt new file mode 100644 index 0000000..dfe0a1f --- /dev/null +++ b/src/mqtt-client.rkt @@ -0,0 +1,34 @@ +#lang racket/base + +(require racket/place) +(require racket/match) +(require mqtt-client) +(require (file "utils.rkt")) + +(provide main) + +(define (main c) + (displayln "MQTT WORKER") + (match (place-channel-get c) + [(list host username password client-name topic-name) + (mqtt/with-client (host client-name) + (mqtt/with-connection (#:keep-alive-interval 20 + #:clean-session #t + #:username username + #:password password) + + + (mqtt/with-qos ('qos-1) + (mqtt/subscribe topic-name) + (let loop () + (mqtt/with-message-recv (topic payload) + (displayln (format "Message \"~a\" recieved on topic \"~a\"" payload topic)) + (let* ((payload (bytes->string/utf-8 payload)) + (payload=? (lambda (what) + (string=? payload + what)))) + (when (or (payload=? "toggle") + (payload=? "toggle-blinker")) + (place-channel-put c (string->symbol payload))))) + (loop)))))])) + -- cgit v1.2.3