Commit f71a6939 by raphael.deimel

adds a general description of what the airserver is

parent 8488e3fc
# What is the pneumaticbox-airserver?
This software is a server that provides an environment to configure/start/stop controllers,
schedule control signals and monitor signals remotely.
Its main purpose is to separate controllers with strict (ms-level) timing
requirements from higher level code with less strict timing requirements.
The Airserver provides a set of signals which controllers can be connected to.
All signals are global, and are referenced by a unique Integer. Many signals have a
special meaning, such as the ones that control the hardware. Others can be used
freely by the clients.
Controllers are created by configuring parameters and assigning them a global controller ID.
During configuration, the controller also gets told which signals to use for input and output.
All controllers have an internal state, they can be active or inactive.
The intended use pattern is to configure all required controllers in a setup phase,
and only activate or deactivate controllers during control.
### Features
* Remotely configurable and reconfigurable control setup. No application-specific data are stored on the server side.
* A set of controller components dedicated to pneumatic control
* A set of software safety components (such as one for limiting channel pressure) to avoid catastrophic outcomes (such as exploding actuators) from simple mistakes on the client side
* Abstraction of hardware I/O into easily accessible signals
* Jitter-free synchronous scheduling via absolute scheduling timestamps and timeserver synchronization
* Relative scheduling of signal events for easy hacking (accepting jitter and network delays)
* Remote monitoring of arbitrary signals up to the time step resolution, timestep-perfect sampling possible, scheduling start and stop of sampling
* Handles multiple clients, e.g. one client for active control and one for monitoring signals
* Control loop execution times are aligned to full milliseconds, making it possible to schedule perfect timing of signal changes, i.e. 1-timestep Dirac pulses
* Scheduling of signal trajectories, i.e. scheduling signal changes in the near future; This avoids network jitter and decouples non-RealTime clients from RT control
* Small codebase, making server execution very reliable.
#Installation Instructions
......@@ -33,7 +70,7 @@ You need to change the Devicetree overlays of the BBB. In /boot/uEnv.txt, disabl
##Disable HDMI
##Build Dependencies:
......@@ -57,3 +94,7 @@ The airserver reports the raw adc values on startup. To calibrate the ADC, copy
If the file exists, the airserver will subtract these values from the ADC signal.
# Licence
This software is distributed under the BSD Licence. See LICENCE.txt for details.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment