aboutsummaryrefslogtreecommitdiff
path: root/vfd-backend
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2014-11-07 19:19:44 +0100
committerJakob Odersky <jodersky@gmail.com>2014-11-07 19:19:44 +0100
commit1c733a1c18ab154e477c42818c48dd2c74866b13 (patch)
tree8dbb6687ed2a4f0c9206de72d8fb9d4919245af2 /vfd-backend
parent2915f8bf09b4d4db6f5e1b574ba988a0fc0fb90a (diff)
downloadmavigator-1c733a1c18ab154e477c42818c48dd2c74866b13.tar.gz
mavigator-1c733a1c18ab154e477c42818c48dd2c74866b13.tar.bz2
mavigator-1c733a1c18ab154e477c42818c48dd2c74866b13.zip
cleanup
Diffstat (limited to 'vfd-backend')
-rw-r--r--vfd-backend/app/controllers/Application.scala9
-rw-r--r--vfd-backend/app/plugins/UavPlugin.scala10
-rw-r--r--vfd-backend/app/views/index.scala.html16
-rw-r--r--vfd-backend/app/views/main.scala.html22
-rw-r--r--vfd-backend/app/views/panels/eicas.scala.html35
-rw-r--r--vfd-backend/app/views/panels/pfd.scala.html31
-rw-r--r--vfd-backend/app/views/uav.scala.html27
-rw-r--r--vfd-backend/conf/application.conf2
-rw-r--r--vfd-backend/conf/routes1
9 files changed, 46 insertions, 107 deletions
diff --git a/vfd-backend/app/controllers/Application.scala b/vfd-backend/app/controllers/Application.scala
index 1c1fe13..6739d3c 100644
--- a/vfd-backend/app/controllers/Application.scala
+++ b/vfd-backend/app/controllers/Application.scala
@@ -14,9 +14,16 @@ object Application extends Controller {
def use[A <: Plugin](implicit app: Application, m: Manifest[A]) = {
app.plugin[A].getOrElse(throw new RuntimeException(m.runtimeClass.toString + " plugin should be available at this point"))
}
+
+ def uav = use[UavPlugin]
+
def index = Action { implicit request =>
- Ok(views.html.index(routes.Application.mavlink.webSocketURL()))
+ Redirect(routes.Application.uav(0))
+ }
+
+ def uav(sysId: Int) = Action { implicit request =>
+ Ok(views.html.uav(routes.Application.mavlink.webSocketURL(), sysId))
}
def mavlink = WebSocket.acceptWithActor[Array[Byte], Array[Byte]] { implicit request =>
diff --git a/vfd-backend/app/plugins/UavPlugin.scala b/vfd-backend/app/plugins/UavPlugin.scala
index 19be049..998f445 100644
--- a/vfd-backend/app/plugins/UavPlugin.scala
+++ b/vfd-backend/app/plugins/UavPlugin.scala
@@ -8,8 +8,8 @@ import play.api.Application
import play.api.Plugin
import play.api.libs.concurrent.Akka
import vfd.uav.Connection
-import vfd.uav.DummyConnection
import vfd.uav.SerialConnection
+import vfd.uav.MockConnection
class UavPlugin(app: Application) extends Plugin {
@@ -25,7 +25,7 @@ class UavPlugin(app: Application) extends Plugin {
val props = tpe match {
case "mock" =>
- DummyConnection.apply
+ MockConnection.apply
case "serial" =>
val serial = config.flatMap(_.getConfig("serial"))
@@ -55,11 +55,7 @@ class Repeater(out: ActorRef, connection: ActorRef) extends Actor {
}
def receive = {
- case msg =>
- if (sender == connection)
- out ! msg
- else
- connection ! msg
+ case Connection.Received(bytes) => out ! bytes
}
} \ No newline at end of file
diff --git a/vfd-backend/app/views/index.scala.html b/vfd-backend/app/views/index.scala.html
deleted file mode 100644
index eaae450..0000000
--- a/vfd-backend/app/views/index.scala.html
+++ /dev/null
@@ -1,16 +0,0 @@
-@(socket: String)
-
-@main("Main"){
-
- <div id="app">
- Loading...
- </div>
-
- <script type="text/javascript">
- window.onload = function () {
- var launcher = new Launcher
- launcher.launch('app', '@routes.Assets.at("")', '@socket')
- }
- </script>
-}
-
diff --git a/vfd-backend/app/views/main.scala.html b/vfd-backend/app/views/main.scala.html
index beb7dbd..8537db6 100644
--- a/vfd-backend/app/views/main.scala.html
+++ b/vfd-backend/app/views/main.scala.html
@@ -1,4 +1,4 @@
-@(title: String)(content: Html)
+@(title: String, info: String)(content: Html)
<!DOCTYPE html>
@@ -10,7 +10,8 @@
<title>VFD - @title</title>
<link rel="shortcut icon" href="@routes.Assets.at("images/logo.svg")">
- <link rel="stylesheet" media="screen" href="@routes.Assets.at("lib/bootstrap/css/bootstrap.css")">
+ <link rel="stylesheet" media="screen" href="@routes.Assets.at("lib/bootstrap/css/bootstrap.min.css")">
+ <link rel="stylesheet" media="screen" href="@routes.Assets.at("lib/font-awesome/css/font-awesome.min.css")">
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
</head>
<body>
@@ -33,20 +34,9 @@
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="navbar-main-collapse">
- <ul class="nav navbar-nav">
- </ul>
- <ul class="nav navbar-nav navbar-right">
- <li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">options<b class="caret"></b></a>
- <ul class="dropdown-menu">
- <li>
- <form method="POST" action="">
- <button type="submit" style="width: 100%;" class="btn btn-default">Sign Out</button>
- </form>
- </li>
- </ul>
- </li>
- </ul>
+ <div class="nav navbar-nav navbar-right">
+ <p class="navbar-text">@info</p>
+ </div>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
diff --git a/vfd-backend/app/views/panels/eicas.scala.html b/vfd-backend/app/views/panels/eicas.scala.html
deleted file mode 100644
index 211adba..0000000
--- a/vfd-backend/app/views/panels/eicas.scala.html
+++ /dev/null
@@ -1,35 +0,0 @@
-@()
-
-@led(condition: String) = @{
- "images/leds/" + (condition match {
- case "error" => "red-on.svg"
- case "warn" => "yellow-on.svg"
- case "good" => "green-on.svg"
- case "unknown" => "none.svg"
- case _ => "a"
- })
-}
-
-@instrument(name: String, condition: String, status: String) = {
- <tr>
- <td>@name</td>
- <td>
- <img src="@routes.Assets.at(led(condition))" alt="@condition" width="15px">
- </td>
- <td>
- <span class="status @condition">
- @status
- </span>
- </td>
- </tr>
-}
-
-
-<!-- <table class="control-table">
- @instrument("engine1", "unknown", "0 rpm")
- @instrument("engine2", "unknown", "1000 rpm")
- @instrument("engine3", "unknown", "2080 rpm")
- @instrument("engine4", "unknown", "1000 rpm")
- @instrument("battery", "unknown", "3000Wh")
- @instrument("power", "unknown", "2000W")
-</table --> \ No newline at end of file
diff --git a/vfd-backend/app/views/panels/pfd.scala.html b/vfd-backend/app/views/panels/pfd.scala.html
deleted file mode 100644
index 9c89d6a..0000000
--- a/vfd-backend/app/views/panels/pfd.scala.html
+++ /dev/null
@@ -1,31 +0,0 @@
-@()
-
-@instrument(name: String) = {
- @defining("images/instruments/" + name + ".svg") { location =>
- <object id="@name" type="image/svg+xml" data="@routes.Assets.at(location)" width="100%">Error loading image.</object>
- }
-}
-
-
-<div class="row">
- <div class="col-lg-4">
-
- </div>
- <div class="col-lg-4">
- @instrument("attitude")
- </div>
- <div class="col-lg-4">
- @instrument("altitude")
- </div>
-</div>
-<div class="row">
- <div class="col-lg-4">
-
- </div>
- <div class="col-lg-4">
- @instrument("heading")
- </div>
- <div class="col-lg-4">
- @instrument("distance")
- </div>
-</div> \ No newline at end of file
diff --git a/vfd-backend/app/views/uav.scala.html b/vfd-backend/app/views/uav.scala.html
new file mode 100644
index 0000000..6ce3007
--- /dev/null
+++ b/vfd-backend/app/views/uav.scala.html
@@ -0,0 +1,27 @@
+@(socket: String, remoteSystemId: Int)
+
+@main("Main", "Remote System " + remoteSystemId){
+
+ <div id="scalajsError" class="alert alert-danger" style="display: none;">
+ <strong><i class="fa fa-bug"></i> Warning: an uncaught error occurred in the display software!</strong> Any visible information may be
+ corrupt. The error was: "<span id="scalajsErrorMessage"></span>"
+ </div>
+
+ <div id="app" data-socketUrl="@socket" data-remoteSystemId="@remoteSystemId.toString">
+ Loading...
+ </div>
+
+ <script type="text/javascript">
+ window.onload = function () {
+ try {
+ var launcher = new Launcher('app', '@routes.Assets.at("")');
+ launcher.main();
+ } catch(err) {
+ document.getElementById("scalajsError").style.display = "block";
+ document.getElementById("scalajsErrorMessage").innerHTML = err;
+ console.log(err)
+ }
+ }
+ </script>
+}
+
diff --git a/vfd-backend/conf/application.conf b/vfd-backend/conf/application.conf
index 1559b89..27586a2 100644
--- a/vfd-backend/conf/application.conf
+++ b/vfd-backend/conf/application.conf
@@ -69,7 +69,7 @@ uav.system_id=1
# Type of connection to use
# 'mock' for a sample connection
-uav.connection.type=serial
+uav.connection.type=mock
# Mavlink component id used by this connection
# (not the web frontend), in case it needs to inject messages
diff --git a/vfd-backend/conf/routes b/vfd-backend/conf/routes
index 45b6ab9..eea8d8e 100644
--- a/vfd-backend/conf/routes
+++ b/vfd-backend/conf/routes
@@ -4,6 +4,7 @@
# Home page
GET / controllers.Application.index
+GET /uav/:sysId controllers.Application.uav(sysId: Int)
GET /mavlink controllers.Application.mavlink
# Map static resources from the /public folder to the /assets URL path