diff options
author | Jakob Odersky <jodersky@gmail.com> | 2014-11-07 19:19:44 +0100 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2014-11-07 19:19:44 +0100 |
commit | 1c733a1c18ab154e477c42818c48dd2c74866b13 (patch) | |
tree | 8dbb6687ed2a4f0c9206de72d8fb9d4919245af2 /vfd-backend | |
parent | 2915f8bf09b4d4db6f5e1b574ba988a0fc0fb90a (diff) | |
download | mavigator-1c733a1c18ab154e477c42818c48dd2c74866b13.tar.gz mavigator-1c733a1c18ab154e477c42818c48dd2c74866b13.tar.bz2 mavigator-1c733a1c18ab154e477c42818c48dd2c74866b13.zip |
cleanup
Diffstat (limited to 'vfd-backend')
-rw-r--r-- | vfd-backend/app/controllers/Application.scala | 9 | ||||
-rw-r--r-- | vfd-backend/app/plugins/UavPlugin.scala | 10 | ||||
-rw-r--r-- | vfd-backend/app/views/index.scala.html | 16 | ||||
-rw-r--r-- | vfd-backend/app/views/main.scala.html | 22 | ||||
-rw-r--r-- | vfd-backend/app/views/panels/eicas.scala.html | 35 | ||||
-rw-r--r-- | vfd-backend/app/views/panels/pfd.scala.html | 31 | ||||
-rw-r--r-- | vfd-backend/app/views/uav.scala.html | 27 | ||||
-rw-r--r-- | vfd-backend/conf/application.conf | 2 | ||||
-rw-r--r-- | vfd-backend/conf/routes | 1 |
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 |