This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
architecture [2011/11/15 22:07] jap |
architecture [2011/12/05 00:20] jap |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Software architecture ====== | ====== Software architecture ====== | ||
This page is part of my [[projects|Home Automation]] project. | This page is part of my [[projects|Home Automation]] project. | ||
+ | <del> | ||
The software has database centric architecture. Database is the key mechanism to exchange data in between lower layer (sensors and actuators) and upper layer (user interfaces and control logic). Each daemon and server is a separate process, which can be dynamically started or stopped without affecting the function of other processes. | The software has database centric architecture. Database is the key mechanism to exchange data in between lower layer (sensors and actuators) and upper layer (user interfaces and control logic). Each daemon and server is a separate process, which can be dynamically started or stopped without affecting the function of other processes. | ||
Line 19: | Line 19: | ||
{{:db_structure.png|}}\\ | {{:db_structure.png|}}\\ | ||
//Database structure// | //Database structure// | ||
+ | <del> | ||
''MemDB'' is the primary data exchange database. It contains two tables: ''Variable'' and ''Value''. Each physical parameter, like sensor reading, actuator target value, etc. has one row in ''Variable'' table defining properties of the variable. Each variable may have several values, separated with timestamp. Current value is the one with latest timestamp. | ''MemDB'' is the primary data exchange database. It contains two tables: ''Variable'' and ''Value''. Each physical parameter, like sensor reading, actuator target value, etc. has one row in ''Variable'' table defining properties of the variable. Each variable may have several values, separated with timestamp. Current value is the one with latest timestamp. | ||
Line 32: | Line 32: | ||
Example:\\ | Example:\\ | ||
- | Sensor //Outdoor Air Temperature// of ventilation unit may simultaneously belong to both ventilation measurements group and outdoor weather measurements group. | + | Sensor //Outdoor Air Temperature// of ventilation unit may simultaneously belong to both ventilation measurements group and outdoor weather measurements group.</del> |
=== Initialization === | === Initialization === | ||
Line 91: | Line 91: | ||
); | ); | ||
</file> | </file> | ||
+ | </del> |