commit 4c48b27164efa6045ab33eb2159c41ffbeb2924c parent 9549e46b944d423465ea28fd7e62ad66cef7348d Author: Daniel Barlow <dan@telent.net> Date: Tue, 10 Mar 2026 00:21:01 +0000 add lashings of error handling Diffstat:
| M | pkgs/maps/main.fnl | | | 30 | ++++++++++++++++++------------ |
1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/pkgs/maps/main.fnl b/pkgs/maps/main.fnl @@ -519,9 +519,23 @@ label.readout { (fn watch-gnss-socket [socket-path] (let [sock (socket.connect { :path socket-path :unlink true })] (cq:wrap - #(each [l (sock:lines "*L")] - (read-gnss-sentence l))))) - + (fn [] + (while true + (case (sock:xread "*L" "t") + l (read-gnss-sentence l) + (nil 11) nil + (nil err) (print :error err))))))) + +(fn tick [] + ;; run cqueues scheduler + (case (cq:step 0) + ok nil + (nil msg code obj fd) (print "step error " msg code obj fd)) + (when (cq:empty) (print "cqueues controller is empty")) + ;; for smoother rotation when course changes, repaint more often than + ;; once per gnss message + (update-app-state {}) + true) (fn run [gnss-socket] (watch-gnss-socket (or gnss-socket "/var/run/gnss-share.sock")) @@ -529,15 +543,7 @@ label.readout { (GLib.timeout_add GLib.PRIORITY_DEFAULT 100 ; ms - (fn [] - ;; run cqueues scheduler - (case (cq:step 0) - ok nil - (nil msg code obj fd) (print "step error " msg code obj fd)) - ;; for smoother rotation when course changes, repaint more often than - ;; once per gnss message - (update-app-state {}) - true) + #(xpcall tick (fn [e] (print e (debug.traceback)))) nil nil) (window:add