From 45777ba8a01a0db48104e59b3c44a1ed944addeb Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Tue, 17 Mar 2015 12:12:05 +0100 Subject: update readme with some more information --- README.md | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 1f8c586..06c42c5 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,35 @@ # Virtual Flight Deck for UAVs -Web interface simulating a cockpit of an unmanned aerial vehicle, built with Akka and Play. +Web interface simulating a cockpit of an unmanned aerial vehicle, built with Akka, Play and ScalaJS. This project is made of several subprojects: - - `vfd-main` contains the play application that runs the actual interface - - `vfd-dashboard` dynamic interface built with scalajs that is served by the main backend - - `vfd-uav` communication library + - `vfd-main` contains the play application that serves the actual interface + - `vfd-dashboard` dynamic interface built with scalajs that displays real-time data from the drone + - `vfd-uav` communication backend for message exchange with drones # Run -First, switch to project `vfd-main` and then `run` + 0. SBT is used as the build tool. - project vfd-main - run + 1. Switch to project `vfd-main` and then `run`. /Note: if this is the first time your run a play project throught sbt, be aware that you may need to wait a while as your computer downloads half the internet/ + + project vfd-main + run + + Calling `vfd-main/run` directly will not work. + + 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 +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: +- 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. +- Messages are parsed by the front-end (the interface) and used to display virtual instrumentation. +- 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). -Calling `vfd-main/run` directly will not work. # License Copyright (C) Jakob Odersky -- cgit v1.2.3