The logic » History » Version 9

« Previous - Version 9/22 (diff) - Next » - Current version
David Božjak, 14.12.2010 21:05


The logic

Basic concept

System Eneratptor is designed to take predefined actions in response to events in the surrounding world. The logic system is designed to be easily calibrated and managed. In addition to its predefined logic it allows the human administrator (through HMI) to reverse any automated or scripted decision and to execute any of the predefined actions, thus allowing the operator to tweak the system according to her best judgement.

The logic diagram

The logic of the system consists of the following concepts:

The basic idea behind this design is modularity. Eneraptor supports any device and can execute any action as long as the driver follows our standard. In this scenario we [the eneraptor designers] expect the device manufacturer (ie air conditioning unit) at least two supply two programs : the device driver and the action program. If there are several actions supported by the device, we expect each to be a standalone program or all actions to be in a single program targeted by different command line arguments.

Concepts described in detail

Device driver

Device driver is basically a program. The eneratptor system doesn't know anything about it, the only crucial part is the driver-mailbox communication through witch data is supplied. More about date in the message specification. The device driver has to know how to reach the mailbox and how to correctly format the message. The device driver does not receive any confirmation from the message recipient.

This driver is not necessarily the same software which is supplied by the manufacturer, it is only a program that communicates with the eneratpr Mailbox.

Mailbox

Mailbox is a bridge between the device drivers and the decision making software. It is a buffer of messages that the decision making software can read at its own pace.

The design of the mailbox and message structure is still open to debate; all input is welcome!

Decision making software

Decision making software is the key mechanism of the eneraptor project. It brings all other components together to ensure all conditions set by (human) operators are met.

The decision making software continuously checks the mailbox for new messages. If any new info is read the software compares it with all the predefined conditions (see predefined action list). If a condition is met, the action is executed. If several conditions are met, all co-responding actions are executed.

This (very elegant) main loop is always executing, however it can be halted by the Human Machine Interface. When this happens the loop still executes, however all but the messages originating from HMI are ignored.

Predefined action list

Predefined action list is a list of all the conditions and co-responding actions entered to the system. It is implemented as a non-ordered list of structures containing the information:

  1. Input device ID
  2. Corner value
  3. Comparison operator
  4. Action to be executed

Action

Action is a program path and program argument pair, thus allowing the Decision making software to execute it.

There are several rules for the Action developers:

  • The Action program must be executable through command line,
  • The Action program must not expect human interaction,
  • The Action program must terminate in a deterministic time,

Outside of this very general rules the Action developers have no limitations in writing the Action programs.

Logika.jpg - The logic diagram (22.9 KB) David Božjak, 13.12.2010 16:33