add readme
authorMart Lubbers <mart@martlubbers.net>
Mon, 14 Nov 2016 18:40:38 +0000 (19:40 +0100)
committerMart Lubbers <mart@martlubbers.net>
Mon, 14 Nov 2016 18:40:38 +0000 (19:40 +0100)
README.md [new file with mode: 0644]

diff --git a/README.md b/README.md
new file mode 100644 (file)
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