aboutsummaryrefslogtreecommitdiff
path: root/mavigator-dashboard
diff options
context:
space:
mode:
Diffstat (limited to 'mavigator-dashboard')
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/Environment.scala14
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/Main.scala19
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/MavlinkSocket.scala14
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/RxUtil.scala4
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Hud.scala6
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Layout.scala10
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Altimeter.scala7
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Bar.scala6
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Clock.scala4
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Compass.scala6
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Distribution.scala6
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Generic.scala6
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Horizon.scala4
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Instrument.scala4
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Led.scala6
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/SvgInstrument.scala6
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/util/Application.scala10
-rw-r--r--mavigator-dashboard/src/main/scala/mavigator/util/environment.scala2
18 files changed, 60 insertions, 74 deletions
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/Environment.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/Environment.scala
deleted file mode 100644
index 57cd39d..0000000
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/Environment.scala
+++ /dev/null
@@ -1,14 +0,0 @@
-package vfd.dashboard
-
-import org.scalajs.dom.html
-
-/** Represents an application's environment */
-trait Environment {
-
- /** The application's root element. */
- def root: html.Element
-
- /** Retrieve an asset's URL based on its file location. */
- def asset(file: String): String
-
-} \ No newline at end of file
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/Main.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/Main.scala
index 71c5378..d313008 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/Main.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/Main.scala
@@ -1,25 +1,22 @@
-package vfd.dashboard
+package mavigator.dashboard
import scala.scalajs.js
import scala.scalajs.js.annotation.JSExport
import org.scalajs.dom.html
-import vfd.dashboard.ui.Layout
+import mavigator.dashboard.ui.Layout
+import mavigator.util.Environment
+
+import scalatags.JsDom.all._
@JSExport("Main")
-object Main {
+object Main extends mavigator.util.Application {
- @JSExport
- def main(rootElement: html.Element, assetsBase: String, args: js.Dictionary[String]) = {
- implicit val env = new Environment {
- def root = rootElement
- def asset(file: String) = assetsBase + "/" + file
- }
-
+ override def main(args: Map[String, String])(implicit env: Environment): Unit = {
val socket = new MavlinkSocket(args("socketUrl"), args("remoteSystemId").toInt)
val layout = new Layout(socket)
env.root.appendChild(layout.element)
}
-} \ No newline at end of file
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/MavlinkSocket.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/MavlinkSocket.scala
index 2fe8262..add1da8 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/MavlinkSocket.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/MavlinkSocket.scala
@@ -1,4 +1,4 @@
-package vfd.dashboard
+package mavigator.dashboard
import scala.scalajs.js
import scala.scalajs.js.Any.fromFunction1
@@ -35,7 +35,7 @@ class MavlinkSocket(url: String, val remoteSystemId: Int) {
val open = Var(false)
}
- private val parser = new Parser(
+ private val parser = new Parser(
{
case pckt@Packet(seq, `remoteSystemId`, compId, msgId, payload) =>
packet() = pckt
@@ -48,9 +48,11 @@ class MavlinkSocket(url: String, val remoteSystemId: Int) {
case OverflowError => stats._overflows() += 1
})
- private val connection = new dom.WebSocket(url)
+// private val connection = new dom.WebSocket(url)
- connection.binaryType = "arraybuffer"
+ //connection.binaryType = "arraybuffer"
+
+ /*
connection.onopen = (e: dom.Event) => {
stats.open() = true
}
@@ -65,5 +67,5 @@ class MavlinkSocket(url: String, val remoteSystemId: Int) {
connection.onclose = (e: dom.CloseEvent) => {
stats.open() = false
}
-
-} \ No newline at end of file
+ */
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/RxUtil.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/RxUtil.scala
index a73c3ba..2637ddf 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/RxUtil.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/RxUtil.scala
@@ -1,4 +1,4 @@
-package vfd.dashboard
+package mavigator.dashboard
import scala.language.implicitConversions
import scala.util.Failure
@@ -67,4 +67,4 @@ package object rxutil {
bindNode(last)
}
-} \ No newline at end of file
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Hud.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Hud.scala
index 6abdb36..18c5c27 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Hud.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Hud.scala
@@ -1,7 +1,7 @@
-package vfd.dashboard.ui
+package mavigator.dashboard.ui
-import vfd.dashboard.Environment
-import vfd.dashboard.ui.instruments._
+import mavigator.util.Environment
+import mavigator.dashboard.ui.instruments._
import scalatags.JsDom.all._
import rx._
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Layout.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Layout.scala
index fe1b34f..902cb9c 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Layout.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/Layout.scala
@@ -1,12 +1,12 @@
-package vfd.dashboard.ui
+package mavigator.dashboard.ui
import rx._
import scalatags.JsDom.all._
-import vfd.dashboard.Environment
-import vfd.dashboard.MavlinkSocket
-import vfd.dashboard.ui.instruments._
+import mavigator.util.Environment
+import mavigator.dashboard.MavlinkSocket
+import mavigator.dashboard.ui.instruments._
import org.mavlink.messages._
-import vfd.dashboard.rxutil._
+import mavigator.dashboard.rxutil._
class Layout(socket: MavlinkSocket)(implicit env: Environment) {
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Altimeter.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Altimeter.scala
index b65b374..9919d33 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Altimeter.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Altimeter.scala
@@ -1,8 +1,9 @@
-package vfd.dashboard.ui.instruments
+package mavigator.dashboard.ui.instruments
+
+import mavigator.util.Environment
import org.scalajs.dom.html
import rx._
-import vfd.dashboard.Environment
class Altimeter(val value: Rx[Double])(implicit env: Environment) extends SvgInstrument[Double] {
import SvgInstrument._
@@ -15,4 +16,4 @@ class Altimeter(val value: Rx[Double])(implicit env: Environment) extends SvgIns
protected def update(altitude: Double) = {
rotate(hand, (altitude * 0.62832).toInt)
}
-} \ No newline at end of file
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Bar.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Bar.scala
index 9f9f81c..0950eab 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Bar.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Bar.scala
@@ -1,8 +1,8 @@
-package vfd.dashboard.ui.instruments
+package mavigator.dashboard.ui.instruments
+import mavigator.util.Environment
import org.scalajs.dom.html
import rx._
-import vfd.dashboard.Environment
class Bar(val value: Rx[Double])(implicit env: Environment) extends SvgInstrument[Double] {
import SvgInstrument._
@@ -15,4 +15,4 @@ class Bar(val value: Rx[Double])(implicit env: Environment) extends SvgInstrumen
translate(level, 0, (97 * (1 - value / 100)).toInt)
}
-} \ No newline at end of file
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Clock.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Clock.scala
index a5bfc03..160fd2d 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Clock.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Clock.scala
@@ -1,4 +1,4 @@
-package vfd.dashboard.ui.instruments
+package mavigator.dashboard.ui.instruments
import org.scalajs.dom
import rx._
@@ -20,4 +20,4 @@ class Clock extends Instrument[Date] {
dom.setInterval(() => {value() = new Date}, 1000)
ready()
-} \ No newline at end of file
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Compass.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Compass.scala
index 9f1ae4a..117c7a3 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Compass.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Compass.scala
@@ -1,8 +1,8 @@
-package vfd.dashboard.ui.instruments
+package mavigator.dashboard.ui.instruments
import org.scalajs.dom.html
import rx._
-import vfd.dashboard.Environment
+import mavigator.util.Environment
class Compass(val value: Rx[Double])(implicit env: Environment) extends SvgInstrument[Double] {
import SvgInstrument._
@@ -14,4 +14,4 @@ class Compass(val value: Rx[Double])(implicit env: Environment) extends SvgInstr
protected def update(heading: Double) = {
rotate(plate, heading)
}
-} \ No newline at end of file
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Distribution.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Distribution.scala
index f750bab..aadafe0 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Distribution.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Distribution.scala
@@ -1,8 +1,8 @@
-package vfd.dashboard.ui.instruments
+package mavigator.dashboard.ui.instruments
import org.scalajs.dom.html
import rx._
-import vfd.dashboard.Environment
+import mavigator.util.Environment
class Distribution(val value: Rx[(Double, Double, Double, Double)])(implicit env: Environment) extends SvgInstrument[(Double, Double, Double, Double)] {
import SvgInstrument._
@@ -22,4 +22,4 @@ class Distribution(val value: Rx[(Double, Double, Double, Double)])(implicit env
translate(position, (x * Radius).toInt, (y * Radius).toInt)
}
-} \ No newline at end of file
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Generic.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Generic.scala
index 86c27e1..14f7de3 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Generic.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Generic.scala
@@ -1,9 +1,9 @@
-package vfd.dashboard.ui.instruments
+package mavigator.dashboard.ui.instruments
import org.scalajs.dom
import org.scalajs.dom.html
import rx._
-import vfd.dashboard.Environment
+import mavigator.util.Environment
class Generic(
min: Double,
@@ -37,4 +37,4 @@ class Generic(
rotate(handElement, value / (max - min) * math.Pi * 3 / 2)
valueElement.textContent = value.toString
}
-} \ No newline at end of file
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Horizon.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Horizon.scala
index bbfe8cf..249f892 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Horizon.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Horizon.scala
@@ -1,8 +1,8 @@
-package vfd.dashboard.ui.instruments
+package mavigator.dashboard.ui.instruments
import org.scalajs.dom.html
import rx._
-import vfd.dashboard.Environment
+import mavigator.util.Environment
class Horizon(val value: Rx[(Double, Double)])(implicit env: Environment) extends SvgInstrument[(Double, Double)] {
import SvgInstrument._
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Instrument.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Instrument.scala
index bf5c9ca..61f240c 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Instrument.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Instrument.scala
@@ -1,4 +1,4 @@
-package vfd.dashboard.ui.instruments
+package mavigator.dashboard.ui.instruments
import rx._
import org.scalajs.dom.html
@@ -22,4 +22,4 @@ trait Instrument[A] {
}
}
-} \ No newline at end of file
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Led.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Led.scala
index f5259b5..c6f7d45 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Led.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/Led.scala
@@ -1,8 +1,8 @@
-package vfd.dashboard.ui.instruments
+package mavigator.dashboard.ui.instruments
import rx._
import scalatags.JsDom.all._
-import vfd.dashboard.Environment
+import mavigator.util.Environment
class Led(val value: Rx[String])(implicit env: Environment) extends SvgInstrument[String] {
@@ -14,4 +14,4 @@ class Led(val value: Rx[String])(implicit env: Environment) extends SvgInstrumen
part("light").setAttribute("fill", color)
}
-} \ No newline at end of file
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/SvgInstrument.scala b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/SvgInstrument.scala
index fe6c58a..28c8d65 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/SvgInstrument.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/dashboard/ui/instruments/SvgInstrument.scala
@@ -1,4 +1,4 @@
-package vfd.dashboard.ui.instruments
+package mavigator.dashboard.ui.instruments
import org.scalajs.dom
@@ -6,7 +6,7 @@ import org.scalajs.dom.html
import scalatags.JsDom.all._
-import vfd.dashboard.Environment
+import mavigator.util.Environment
/** An instrument backed by an SVG image. */
trait SvgInstrument[A] extends Instrument[A] {
@@ -51,4 +51,4 @@ object SvgInstrument {
elem.style.transform = "rotateZ(" + rad + "rad)";
}
-} \ No newline at end of file
+}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/util/Application.scala b/mavigator-dashboard/src/main/scala/mavigator/util/Application.scala
index 9a57e43..7cb6f27 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/util/Application.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/util/Application.scala
@@ -8,19 +8,19 @@ import org.scalajs.dom.html
trait Application {
- def main(env: Environment, args: Map[String, String]): Unit
+ def main(args: Map[String, String])(implicit env: Environment): Unit
@JSExport
- final def _start(settings: js.Dynamic): Unit = {
+ final def start(settings: js.Dynamic): Unit = {
val env = new StaticEnvironment(
root = settings.root.asInstanceOf[html.Element],
- assetsBase = settings.root.asInstanceOf[String]
+ assetsBase = settings.assetsBase.asInstanceOf[String]
)
- val args = settings.args.asInstanceOf[Map[String, String]]
+ val args = settings.args.asInstanceOf[js.Dictionary[Any]].mapValues(_.toString).toMap
- main(env, args)
+ main(args)(env)
}
}
diff --git a/mavigator-dashboard/src/main/scala/mavigator/util/environment.scala b/mavigator-dashboard/src/main/scala/mavigator/util/environment.scala
index fad1bf3..3d58c5a 100644
--- a/mavigator-dashboard/src/main/scala/mavigator/util/environment.scala
+++ b/mavigator-dashboard/src/main/scala/mavigator/util/environment.scala
@@ -5,7 +5,7 @@ import org.scalajs.dom.html
/** Represents an application's environment */
trait Environment {
-
+
/** The application's root element. */
def root: html.Element