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