aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2014-12-18 12:01:55 +0100
committerJakob Odersky <jodersky@gmail.com>2014-12-18 12:01:55 +0100
commit96cf5dd9d3ae86699f58f362e42a03bb83e66b1e (patch)
treece77ae664b49af59b8ee761b7027725ccdd0ad90
parent82ae4b18a62e949e7280afbaa5dde90d613c4ce6 (diff)
downloadmavigator-96cf5dd9d3ae86699f58f362e42a03bb83e66b1e.tar.gz
mavigator-96cf5dd9d3ae86699f58f362e42a03bb83e66b1e.tar.bz2
mavigator-96cf5dd9d3ae86699f58f362e42a03bb83e66b1e.zip
Add UI power component
-rw-r--r--vfd-frontend/src/main/scala/vfd/frontend/Main.scala8
-rw-r--r--vfd-frontend/src/main/scala/vfd/frontend/ui/Components.scala15
-rw-r--r--vfd-frontend/src/main/scala/vfd/frontend/ui/panels/Communication.scala3
3 files changed, 22 insertions, 4 deletions
diff --git a/vfd-frontend/src/main/scala/vfd/frontend/Main.scala b/vfd-frontend/src/main/scala/vfd/frontend/Main.scala
index 446d56d..7b7990e 100644
--- a/vfd-frontend/src/main/scala/vfd/frontend/Main.scala
+++ b/vfd-frontend/src/main/scala/vfd/frontend/Main.scala
@@ -29,7 +29,7 @@ object Main {
val message = socket.packet.map { p =>
Message.unpack(socket.packet().messageId, socket.packet().payload)
}
-
+
Obs(message) {
println(message().toString())
}
@@ -39,8 +39,10 @@ object Main {
div(`class` := "col-xs-12")(
div(`class` := "panel panel-default")(
div(`class` := "panel-body")(
- button(`class` := "btn")("ACK"),
- img(`src` := env.asset("images/leds/red-on.svg"), height := "30px"))))),
+ button(`class` := "btn")("LOCKED"),
+ button(`class` := "btn")("MANUAL"),
+ button(`class` := "btn")("GUIDED"),
+ button(`class` := "btn")("AUTO"))))),
div(`class` := "row")(
div(`class` := "col-xs-4")(
div(`class` := "panel panel-default")(
diff --git a/vfd-frontend/src/main/scala/vfd/frontend/ui/Components.scala b/vfd-frontend/src/main/scala/vfd/frontend/ui/Components.scala
index 4c17ecf..f911865 100644
--- a/vfd-frontend/src/main/scala/vfd/frontend/ui/Components.scala
+++ b/vfd-frontend/src/main/scala/vfd/frontend/ui/Components.scala
@@ -75,7 +75,7 @@ object Components {
frame(inst, size)
}
- def basic(value: Rx[Double], size: String)(implicit app: Environment) = {
+ def basic(value: Rx[Double], size: String)(implicit app: Environment) = {
val inst = instrument("basic")
Obs(value, skipInitial = true) {
val svg = inst.contentDocument
@@ -87,6 +87,19 @@ object Components {
}
frame(inst, size)
}
+
+ def bar(value: Rx[Double], size: String)(implicit app: Environment) = {
+ val inst = instrument("bar")
+ Obs(value, skipInitial = true) {
+ val svg = inst.contentDocument
+ val level = svg.getElementById("level")
+ level.style.transform = "translate(0px, " + 97 * (1 - value() / 100) + "px)";
+ level.style.transition = "transform 250ms ease-out"
+ svg.getElementById("unit").textContent = "%"
+ svg.getElementById("value").textContent = value().toString
+ }
+ frame(inst, size)
+ }
}
diff --git a/vfd-frontend/src/main/scala/vfd/frontend/ui/panels/Communication.scala b/vfd-frontend/src/main/scala/vfd/frontend/ui/panels/Communication.scala
index ba0d490..813b695 100644
--- a/vfd-frontend/src/main/scala/vfd/frontend/ui/panels/Communication.scala
+++ b/vfd-frontend/src/main/scala/vfd/frontend/ui/panels/Communication.scala
@@ -28,6 +28,7 @@ object Communication {
val m1 = Var(0.0)
val m2 = Var(0.0)
val m3 = Var(0.0)
+ val battery = Var(0.0)
Obs(message) {
message() match {
@@ -36,6 +37,7 @@ object Communication {
m1() = _m1
m2() = _m2
m3() = _m3
+ case Power(mV) => battery() = mV / 120
case _ => ()
}
}
@@ -64,6 +66,7 @@ object Communication {
td(overflows),
td("BID"),
td(wrongIds)))),
+ div(Components.bar(battery, "25%")),
div(
Components.basic(m0, "25%"),Components.basic(m1, "25%"),Components.basic(m2, "25%"),Components.basic(m3, "25%")))
}