diff options
Diffstat (limited to 'mavigator-dashboard')
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 |