aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-03-18 00:52:05 +0100
committerJakob Odersky <jodersky@gmail.com>2015-03-18 00:52:14 +0100
commita9b1db69d3ceea9477c19bffb6b6b23ec66a3d77 (patch)
treeae5b6740e078d024487e9dd772770a4f2d7d6610
parent27c53ddcee21796069445e055625c52808962f69 (diff)
downloadmavigator-a9b1db69d3ceea9477c19bffb6b6b23ec66a3d77.tar.gz
mavigator-a9b1db69d3ceea9477c19bffb6b6b23ec66a3d77.tar.bz2
mavigator-a9b1db69d3ceea9477c19bffb6b6b23ec66a3d77.zip
add description on dashboard
-rw-r--r--README.md11
1 files changed, 9 insertions, 2 deletions
diff --git a/README.md b/README.md
index 440aec2..3be2c15 100644
--- a/README.md
+++ b/README.md
@@ -19,10 +19,10 @@ This project is made of several subprojects:
2. Navigate to localhost:9000 in a modern browser (tested on Firefox and Chrome) to see the interface. The feed defaults to mock data.
-# Developer Info
+# Developer Overview
The general idea of this project is to create a web interface for displaying live data from a drone.
-A few explanations to get started:
+The flow of such data can be summarized in a few points:
- Data is received and processed in the form of [MAVLink](http://qgroundcontrol.org/mavlink/start) messages.
- Messages arrive at a communication backend (implemented in vfd-uav). Currently, this is either a mock backend that generates random messages, or a serial connection using [flow](https://github.com/jodersky/flow) for low-level communication.
- These messages are then transferred through vfd-main to the interface via websockets.
@@ -30,6 +30,13 @@ A few explanations to get started:
- Currently, a custom set of MAVLink messages are used. Their definition is in mavlink/concise.xml
- The dialect definition is translated from xml into useable scala code by a plugin during the build (plugin is contained in /project).
+Details on the dashboard interface:
+ - the frontend is a pure scalajs application using [scalatags](https://github.com/lihaoyi/scalatags) templating
+ - basically, vfd-main provides a websocket for communication and serves a page (see views.uav.scala.html) that contains a div with a loading message
+ - once loaded, the scalajs frontend replaces the content of said div with its insrumentation (see code in package vfd.dashboard.ui.*)
+ - messages are received by a websocket and stored in an observable "var"; this process uses [scala.rx](https://github.com/lihaoyi/scala.rx)
+ - panels observe the recieved messages and update their respective instruments and components
+
# License
Copyright (C) Jakob Odersky