Skip to content

Latest commit

 

History

History
55 lines (41 loc) · 2.27 KB

README.md

File metadata and controls

55 lines (41 loc) · 2.27 KB

Elma

Elma is an event loop and process manager for embedded and reactive systems. Elma is structured as a C++ library of classes on top of which you build your own C++ project. It keeps track of processes, finite state machines, events, and communication channels, executing them at specified frequencies. Elma was developed as part of the University of Washington's ECE P 520 course on advanced embedded systems programming. More information on how Elma was designed can be found in the links below:

Installation

The source code for Elma is on Github.

From Dockerhub

To get started, you will need a C++ build environment. We have provided one with the Docker container elma, which you can use as follows:

git clone https://github.com/klavinslab/elma.git
cd elma
docker run -v $PWD:/source -it klavins/elma:latest bash
make
examples/bin/basic

From the Dockerfile

You can also build the docker environment, described in env/Dockerfile, yourself, with the following commands:

git clone https://github.com/klavinslab/elma.git
cd elma
docker build -t myelma .
docker run -v $PWD:/source -it myelma bash
make
examples/bin/basic

Manual Installation

To install Elma without using Docker, you will need to install the following tools:

Usage

See the examples in the examples directory for how to build new event loops with Elma.

License

This software is open source and uses the MIT license. Details can be found here.