From cd2239021e08ba95b293fc626b1f14fdf73158cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marcus=20Thelander=20Andr=C3=A9n?=
 <marcus.thelander_andren@control.lth.se>
Date: Thu, 18 Jan 2018 16:43:13 +0100
Subject: [PATCH] Updated README.md

---
 README.md | 47 +++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 45 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 1807b17..7d5e899 100644
--- a/README.md
+++ b/README.md
@@ -4,14 +4,57 @@
 # Welcome to LabConnections.jl - the IO-software part of the LabDev project
 
 The goal of this project is to develop a software package in [Julia](https://julialang.org/) 
-for interfacing with lab processes using the [BeagleBone Black Rev C](http://beagleboard.org/) (BBB).
+for interfacing with lab processes using either the [BeagleBone Black Rev C](http://beagleboard.org/) (BBB)
+with custom [IO-board cape](https://gitlab.control.lth.se/labdev/ioboards), or the old IO-boxes in the labs using Comedi.
+With this package, the user is able to setup a connection between the 
+host computer and the IO-device, and send and 
+receive control signals and measurements from the lab process.
 
 The full documentation of the package is available [here](https://gitlab.control.lth.se/labdev/LabConnections.jl/blob/master/docs/build/index.md).
 
-## Repository structure
+## Package Overview
+The `LabConnections.jl` package is subdivided into two main modules; `BeagleBone.jl`
+and `Computer.jl`. `BeagleBone.jl` defines low-level types and functions meant
+to be used locally on the BBB, and `Computer.jl` defines the user interface on the host
+computer side. Below is an overview of the modules.
 
+### BeagleBone.jl
+This module defines types representing different pins and LEDs on the BBB, and
+functions to change their status and behaviour. There are 4 different types defined
+(each has the abstract super type `IO_Object`):
+* `GPIO` : Represents the BBB's General Purpose Input Output (GPIO) pins. 
+Each instance will correspond to a physical GPIO pin on the board, and can be 
+set as an input or output pin, and to output high (1) or low (0).
+* `PWM` : Represents the BBB's Pulse Width Modulation (PWM) pins. 
+Each instance will correspond to a physical PWM pin on the board, which can be
+turned on/off, and whose period, duty cycle and polarity can be specified.
+* `SysLED` : Represents the 4 system LEDs on the BBB, and can be turned on/off.
+Used to perform simple tests and debugging on the BBB.
+* `Debug` : Used for debugging and pre-compilation on the BBB. It does 
+not represent any physical pin or LED on the board.
 
+### Computer.jl
+This module contains the user interface on the host computer side, and defines 
+types for devices/connections to the lab process, and filestreams between the 
+host computer and different IO-devices (BBB or Comedi). There are currently 3 
+different device/connection types (each has the abstract super type `AbstractDevice`):
+* `AnalogInput10V` : Represents ±10V connections from the lab process to the IO-device. Each instance will correspond to a physical ±10V measurement signal from the lab process, whose value can be read.
+* `AnalogOutput10V` : Represents ±10V connections from the IO-device to the lab process. Each instance will correspond to a physical ±10V input signal to the lab process, whose value can be set.  
+* `SysLED` : Represents the System LEDs on the BBB. Used for simple testing and debugging from the host computer side.
 
+There are 2 different filestream types (each has the abstract super type `LabStream`):
+* `BeagleBoneStream` : 
+* `ComediStream` : 
+
+
+## Getting Started
+
+### Installation
+
+### Running a Simple Example
+
+## Repository Structure
+The package is subdivided into two main modules; 
 
 # OBS! SPI development
 The SPI development is done in C and in a forked repository, currently
-- 
GitLab