add aroow to show direction of travel
This commit is contained in:
parent
e49173cfdd
commit
21471654cb
@ -129,6 +129,28 @@ label.readout {
|
|||||||
(: :add (readout :elapsed-time ""))
|
(: :add (readout :elapsed-time ""))
|
||||||
(: :add (readout :speed "0"))))
|
(: :add (readout :speed "0"))))
|
||||||
|
|
||||||
|
(fn arrow []
|
||||||
|
(let [height 40
|
||||||
|
w (Gtk.Label {
|
||||||
|
:halign Gtk.Align.CENTER
|
||||||
|
:valign Gtk.Align.CENTER
|
||||||
|
:width height :height height
|
||||||
|
:on_draw
|
||||||
|
(fn [self g]
|
||||||
|
(g:set_source_rgb 0.4 0.0 0.1)
|
||||||
|
(g:translate (// height 2) (// height 2))
|
||||||
|
(g:rotate (/ (* -2 app-state.course math.pi) 360) )
|
||||||
|
(g:translate (// height -2) (// height -2))
|
||||||
|
(g:set_line_width 4)
|
||||||
|
(g:move_to 10 height)
|
||||||
|
(g:line_to (// height 2) 0)
|
||||||
|
(g:line_to (- height 10) height)
|
||||||
|
(g:fill)
|
||||||
|
true)
|
||||||
|
})]
|
||||||
|
w))
|
||||||
|
|
||||||
|
|
||||||
(local socket-path (or (. arg 1) "/var/run/gnss-share.sock"))
|
(local socket-path (or (. arg 1) "/var/run/gnss-share.sock"))
|
||||||
|
|
||||||
(local gnss-socket
|
(local gnss-socket
|
||||||
@ -153,7 +175,10 @@ label.readout {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
{ : speed-knots }
|
{ : speed-knots }
|
||||||
(update-app-state { :speed (* speed-knots knot-in-m-s) })))))
|
(update-app-state { :speed (* speed-knots knot-in-m-s) }))
|
||||||
|
(if message.bearing-true
|
||||||
|
(update-app-state { :course message.bearing-true }))
|
||||||
|
)))
|
||||||
true)
|
true)
|
||||||
|
|
||||||
(let [sock (gnss-socket:get_socket)
|
(let [sock (gnss-socket:get_socket)
|
||||||
@ -168,6 +193,7 @@ label.readout {
|
|||||||
(doto (Gtk.Overlay {})
|
(doto (Gtk.Overlay {})
|
||||||
(: :add (osm-widget))
|
(: :add (osm-widget))
|
||||||
(: :add_overlay (readouts))
|
(: :add_overlay (readouts))
|
||||||
|
(: :add_overlay (arrow))
|
||||||
))
|
))
|
||||||
|
|
||||||
(window:show_all)
|
(window:show_all)
|
||||||
|
@ -58,7 +58,6 @@
|
|||||||
(if (= value "")
|
(if (= value "")
|
||||||
nil
|
nil
|
||||||
(let [(deg min) (string.match value "(..)(.+)")]
|
(let [(deg min) (string.match value "(..)(.+)")]
|
||||||
(print :deg value deg :min min)
|
|
||||||
(*
|
(*
|
||||||
(+ (tonumber deg)
|
(+ (tonumber deg)
|
||||||
(/ (tonumber min) 60))
|
(/ (tonumber min) 60))
|
||||||
|
Loading…
Reference in New Issue
Block a user