aboutsummaryrefslogtreecommitdiff
path: root/vfd-frontend/src/main/scala/vfd
diff options
context:
space:
mode:
Diffstat (limited to 'vfd-frontend/src/main/scala/vfd')
-rw-r--r--vfd-frontend/src/main/scala/vfd/frontend/Main.scala10
-rw-r--r--vfd-frontend/src/main/scala/vfd/frontend/ui/panels/Primary.scala16
2 files changed, 20 insertions, 6 deletions
diff --git a/vfd-frontend/src/main/scala/vfd/frontend/Main.scala b/vfd-frontend/src/main/scala/vfd/frontend/Main.scala
index aa6d8d8..a6511d5 100644
--- a/vfd-frontend/src/main/scala/vfd/frontend/Main.scala
+++ b/vfd-frontend/src/main/scala/vfd/frontend/Main.scala
@@ -10,9 +10,9 @@ import rx.Rx
import rx.Var
import rx.Var
import scalatags.JsDom.all._
-
import vfd.frontend.ui.panels
import vfd.frontend.util.Environment
+import org.mavlink.messages.Message
object Main {
@@ -21,6 +21,12 @@ object Main {
val remoteSystemId = args("remotesystemid").toInt
val socket = new MavlinkSocket(socketUrl, remoteSystemId)
+
+ val message = Rx{
+ val p = socket.packet()
+ Message.unpack(p.messageId, p.payload)
+ }
+
val element = div(`class` := "container-fluid")(
div(`class` := "row")(
@@ -44,7 +50,7 @@ object Main {
div(`class` := "col-xs-5")(
div(`class` := "panel panel-default")(
div(`class` := "panel-body")(
- panels.Primary()))),
+ panels.Primary(message)))),
div(`class` := "col-xs-3")(
div(`class` := "panel panel-default")(
div(`class` := "panel-body")(
diff --git a/vfd-frontend/src/main/scala/vfd/frontend/ui/panels/Primary.scala b/vfd-frontend/src/main/scala/vfd/frontend/ui/panels/Primary.scala
index 3b48375..71e0fbb 100644
--- a/vfd-frontend/src/main/scala/vfd/frontend/ui/panels/Primary.scala
+++ b/vfd-frontend/src/main/scala/vfd/frontend/ui/panels/Primary.scala
@@ -2,15 +2,23 @@ package vfd.frontend.ui.panels
import rx.core.Var
import scalatags.JsDom.all.div
+import vfd.frontend.util._
import vfd.frontend.ui.Components
import vfd.frontend.util.Environment
+import org.mavlink.messages.Message
+import org.mavlink.messages.Attitude
+import rx.core.Rx
+import org.mavlink.messages.Pressure
object Primary {
- def apply()(implicit env: Environment) = {
- val pitchRoll = Var((0.0, 0.0))
- val heading = Var(0.0)
- val altitude = Var(0.0)
+ def apply(packet: Rx[Message])(implicit env: Environment) = {
+ val attitude = packet.only[Attitude]
+ val pressure = packet.only[Pressure]
+
+ val pitchRoll = Rx{(attitude().pitch.toDouble, attitude().roll.toDouble)}
+ val heading = Rx{attitude().heading.toDouble}
+ val altitude = Rx{pressure().pressure.toDouble}
div(
Components.heading(heading, "33%"),