And one more thing. There is a manual for cdata. There is a link on
this page
https://www.nongnu.org/nyacc/
On 11/1/24 6:37 AM, Matt Wette wrote:
I got this wrong. Sorry! This is it. What I gave previously was
the old fh syntax.
(msg (make-cdata struct-mosquitto_message* message))
On 11/1/24 6:32 AM, Matt Wette wrote:
assuming message is a Guile pointer:
(define (receive-message mosq obj message)
(let ((msg (make-struct-mosquitto_message* message))
(size (cdata-ref msg '* 'payloadsize))
(payload (cdata-ref msg '* 'payload))
(pointer->string payload size)))
On 10/31/24 4:49 PM, Mikael Djurfeldt wrote:
Hi Matt,
This is very nice indeed! :-)
I got a small client working, but I found the unpacking of values in
the message callback function a bit cumbersome. I now have:
(define (pointer->struct-mosquitto_message pointer)
(let* ((size (ctype-size struct-mosquitto_message))
(bvec (pointer->bytevector pointer size)))
(Xcdata-ref bvec 0 struct-mosquitto_message))) ;The only
way I found that worked! :)
(define (receive-message mosq obj message)
(let* ((message (pointer->struct-mosquitto_message message))
(payload (cdata-ref message 'payload))
(size (cdata-ref message 'payloadlen))
(payload (pointer->string payload size)))
(display payload)
(newline)))
Is there some more convenient/right way to do that?
Best regards,
Mikael
On Thu, Oct 31, 2024 at 1:02 PM Matt Wette <matt.we...@gmail.com>
wrote:
On 10/31/24 1:48 AM, Ricardo G. Herdt wrote:
> Hi,
>
> never did it myself, but you can create some bindings to
libmosquitto
> for your usecase. There are bindings for chicken, one can take
some
> inspiration from there:
http://wiki.call-cc.org/eggref/5/mosquitto#api
>
> Regards,
>
> Ricardo
>
> Am 31.10.2024 03:24 schrieb Alan Wedel:
>> I have been working on a controller that uses a
microcontroller to
>> read some sensors and publish their data to a mqtt broker. I
would
>> like to have a guile program subscribe to the mqtt broker and
log the
>> sensor readings to a file. Is there anyone using guile with
mqtt like
>> this? If so, how are you doing it?
>
Here is a dot-ffi file for mosquitto using nyacc:
(define-ffi-module (ffi mosquitto)
#:pkg-config "libmosquitto"
#:include '("mosquitto.h"))
I just uploaded nyacc-2.01.2, needed to compile above.
refs:
https://savannah.nongnu.org/projects/nyacc
https://www.nongnu.org/nyacc/nyacc-fh-ug.html
Matt