aboutsummaryrefslogtreecommitdiff
path: root/vfd-index/src/main/scala/vfd/index/Main.scala
diff options
context:
space:
mode:
Diffstat (limited to 'vfd-index/src/main/scala/vfd/index/Main.scala')
-rw-r--r--vfd-index/src/main/scala/vfd/index/Main.scala29
1 files changed, 19 insertions, 10 deletions
diff --git a/vfd-index/src/main/scala/vfd/index/Main.scala b/vfd-index/src/main/scala/vfd/index/Main.scala
index f2f9f0d..779b682 100644
--- a/vfd-index/src/main/scala/vfd/index/Main.scala
+++ b/vfd-index/src/main/scala/vfd/index/Main.scala
@@ -18,23 +18,26 @@ import scalatags.JsDom.all._
object Main {
import Util._
- case class ActiveVehicle(id: Int)
-
val active = Var(Set.empty[ActiveVehicle])
val parser = new Parser(
- packet => Message.unpack(packet.messageId, packet.payload) match {
- case hb: Heartbeat =>
- active() += ActiveVehicle(packet.systemId)
- case _ => ()
- })
+ packet => {
+ val m: Message = Message.unpack(packet.messageId, packet.payload)
+ println(m)
+ m match {
+ case hb: Heartbeat =>
+ active() += ActiveVehicle.fromHeartbeat(packet.systemId, hb)
+ case _ => ()
+ }
+ }
+ )
@JSExport
def main(root: html.Element, baseAssets: String, args: js.Dictionary[String]): Unit = {
val connection = new dom.WebSocket(args("socketUrl"))
- connection.binaryType = "arraybuffer";
+ connection.binaryType = "arraybuffer"
connection.onmessage = (e: dom.MessageEvent) => {
val buffer = e.data.asInstanceOf[js.typedarray.ArrayBuffer]
val view = new js.typedarray.DataView(buffer)
@@ -48,13 +51,19 @@ object Main {
thead(
tr(
th("System ID"),
+ th("Type"),
+ th("Autopilot"),
+ th("State"),
th(""))),
Rx {
tbody(
for (vehicle <- active().toSeq) yield {
tr(
- td(vehicle.id),
- td(a(href := "/dashboard/" + vehicle.id, `class` := "btn btn-default")("Pilot")))
+ td(vehicle.systemId),
+ td(vehicle.vehicleType),
+ td(vehicle.autopilot),
+ td(vehicle.state),
+ td(a(href := "/dashboard/" + vehicle.systemId, `class` := "btn btn-default")("Pilot")))
})
}).render)
}