maps: read from gnss unix socket
This commit is contained in:
parent
ae9c4b0b3c
commit
4835b24e03
@ -1,9 +1,12 @@
|
||||
; (local { : view } (require :fennel))
|
||||
(local { : fdopen } (require :posix.stdio))
|
||||
|
||||
(local {
|
||||
: Gtk
|
||||
: OsmGpsMap
|
||||
: Gdk
|
||||
: Gio
|
||||
: GLib
|
||||
}
|
||||
(require :lgi))
|
||||
|
||||
@ -60,6 +63,25 @@ label.readout {
|
||||
(: :add (readout "00:00"))
|
||||
(: :add (readout "25 km/h"))))
|
||||
|
||||
(local gnss-socket
|
||||
(let [addr (Gio.UnixSocketAddress {
|
||||
:path "/var/run/gnss-share.sock"
|
||||
})]
|
||||
(: (Gio.SocketClient) :connect addr nil)))
|
||||
|
||||
(fn read-gnss [socket]
|
||||
(each [l #(socket:read "l")]
|
||||
(print "gnss" l))
|
||||
true)
|
||||
|
||||
(let [sock (gnss-socket:get_socket)
|
||||
fd (sock:get_fd)
|
||||
events [ GLib.IOCondition.IN GLib.IOCondition.HUP]
|
||||
channel (GLib.IOChannel.unix_new fd)
|
||||
handle (fdopen fd :r)]
|
||||
(GLib.io_add_watch channel 0 events #(read-gnss handle)))
|
||||
|
||||
|
||||
(window:add
|
||||
(doto (Gtk.Overlay {})
|
||||
(: :add (osm-widget))
|
||||
|
Loading…
Reference in New Issue
Block a user