maranet 1.0.6
A Python client library for MARA protocol. Includes server emulator, although MARA servers are tipically microcontrollers.
License: MIT license
Keywords: maranet

=======
MaraNet
=======


.. image:: https://img.shields.io/pypi/v/maranet.svg
        :target: https://pypi.python.org/pypi/maranet

.. image:: https://img.shields.io/travis/D3f0/maranet.svg
        :target: https://travis-ci.org/D3f0/maranet

.. image:: https://readthedocs.org/projects/maranet/badge/?version=latest
        :target: https://maranet.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status

.. image:: https://pyup.io/repos/github/D3f0/maranet/shield.svg
     :target: https://pyup.io/repos/github/D3f0/maranet/
     :alt: Updates


A Python client library for MARA protocol. Includes server emulator, although MARA servers are tipically microcontrollers.


* Free software: MIT license
* Documentation: https://maranet.readthedocs.io.


Mara Network Protocol
=====================


Mara is a protocol designed for interaction with a network of embedded devices.
These devices collect state and events from a process (implementations include
traffic light systems and power station monitoring).

Mara 1.0 is source code is implemented on top of Microchip PIC devices and code
can be requested at ricadoalopez at gmail.

Mara 1.6, designed with 16 bit in mind, is implemented on top of Arduino libraries and
should be available soon.


Mara 1.0
--------

Mara packages structure::

    ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐┌─────┐┌─────┬─────┐
    │ SOF │ SEQ │ QTY │ SRC │ DST │ CMD │ PLD ││ ... ││ BCL │ BCH │
    │     │     │     │     │     │     │     ││     ││     │     │
    └─────┴─────┴─────┴─────┴─────┴─────┴─────┘└─────┘└─────┴─────┘
    ┌─────┬───────────┬───────────┬─────┬───────────┬───────────┐
    │ QSV │ SV0       │ SV1       │ QDI │ DI0       │ DI1       │
    │     │           │           │     │           │           │
    └─────┴───────────┴───────────┴─────┴───────────┴───────────┘
    ┌─────┬───────────┬───────────┬─────┬─────────────────────────┐
    │ QAI │ AI0       │ AI1       │ QEV │ EV..                    .
    │     │           │           │     │                         │
    └─────┴───────────┴───────────┴─────┴─────────────────────────┘

Where:

    * **SOF** Start of frame
    * **SEQ** Sequence number
    * **QTY** Frame length or byte *quantity*
    * **SRC** Source address
    * **DST** Destination address
    * **CMD** Command
    * **PLD** Payload
        - Payload consists of arrays of values



History
=======


1.0.6 (2017-07-10)
------------------

* Simplified the mara.protocols pacakge.

1.0.2 - 1.0.5 (2017-07-10)
--------------------------

* Added maranet.__version__
* Renamed maranet.mara to maranet.protocols
* CLI entrypoints working
    - maranet client
    - maranet direct_poll

1.0.1 (2017-07-09)
------------------

* Move code to cookiecutter python pacakge.

1.0 (2017-07-09)
------------------

* First release on PyPI. The sourcecode is extracted from https://github.com/d3f0/txscada and placed in an independet package.


<1.0 (2009-08-06-)
------------------

* Mara is part of txscada project, involved in a Traffic Light system based on PyQt4 and MySQL.
* Mara is extended to a 16 bit version to be used on a Power Substation Monitoring Software.

.. image:: docs/img/mara_in_use.jpg
    :width: 50%