From 20d565b9eb2b58cc1e7e43b518d3529fb7ba10d4 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Mon, 14 Nov 2016 19:40:38 +0100 Subject: [PATCH] add readme --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..ff2a986 --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# mTask + +### Introduction +*mTasks* are small imperative tasks that can be run on an embedded device like +arduino/ESPxxx/Nucleo arm boards. They are communicated to the device in +bytecode which is interpreted by the engine that has to be programmed on the +device. + +The devices suitable for *mTasks* are not limited to embedded devices. In the +`int` folder is a `C` reference implementation available for intel machines. + +*mTasks* are written in [clean][clean] and specifically using the +[iTasks][itasks] library. + +### Workings of an *mTask* system +*mTasks* are routines that are executed in a round robin fashion + +### Communication back to the server via shared data sources +When a shared data source is updated the *mTask* can publish this data back to +the server. This is usefull when for example a temperature reaches a certain +threshhold. How this communication will be done is yet to be researched. +**TODO** + +### Usage +All programs can be built by running `make`. Note that you need the latest +`clm` version if you want to use the `Makefile` since hierarchical modules are +used. This version can be found [here][clm]. + +The following programs are available as of now: +- `mTaskExamples` + + This compiles a list of mTask examples to `C` code. + +- `mTaskMakeSymbols` + + This creates the `mTaskSymbols.h` header file + +- `mTaskInterpret` + + This compiles a subset of *mTasks* to bytecode. + +### Protocol +The engine starts with no tasks. To send a new task the following protocol must +be adhered. +**TODO** + +### Bytecode operations +The header file for the interpreter with the corresponding bytevalues can be +generated by running `mTaskMakeSymbols`. + +### Author(s) +Initial work has been done by Pieter Koopman. Extensions have been made by Mart +Lubbers. + +[clm]: https://svn.cs.ru.nl/repos/clean-tools/trunk/clm +[clean]: clean.cs.ru.nl +[itasks]: clean.cs.ru.nl/ITasks -- 2.20.1