diff options
Diffstat (limited to 'vfd-frontend/src/main/scala/vfd')
-rw-r--r-- | vfd-frontend/src/main/scala/vfd/frontend/Main.scala | 10 | ||||
-rw-r--r-- | vfd-frontend/src/main/scala/vfd/frontend/ui/panels/Primary.scala | 16 |
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%"), |