diff options
Diffstat (limited to 'vfd-index/src/main/scala/vfd/index/Main.scala')
-rw-r--r-- | vfd-index/src/main/scala/vfd/index/Main.scala | 29 |
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) } |