2. LiV software architecture

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

2. LiV software architecture

This post was updated on .
All LiV software resides in one directory: "/home/pi/liv".

There are four liv directories: livDB, livLCD, liVAPIs and livXMPP.
Each directory contains Python code responsible for controlling one aspect of LiV.
When LiV boots, four Linux processes corresponding to the four liv directories are started in the order specified by startup script "/etc/init.d/liv".

You can see all these liv processes with "ps aux| grep liv" command.
Processes can be started and stopped manually using "pkill" command.
For example "sudo pkill -f livLCD" kills the livLCD process.
"sudo python livLCD.py" executed from "/home/pi/liv/livLCD" directory starts livLCD process.

Each liv directory contains a configuration file: this is a text file that users can edit according to their particular setup (e.g. sensors connected to LiV, user names and passwords for XMPP and email accounts, time duration for LCD display cycles, etc...)

Each directory contains a log file (*.log) where that specific liv process logs relevant information. The log level (DEBUG, INFO, ERROR, CRITICAL) can be setup in the *.logging file.  

The directory iotConnectors under "/home/pi/liv" holds sample code for connecting LiV to various IoT platforms (devicehive, xively, thingspeak, data.sparkfun.com, emoncms, etc...)

Suggested topics:
- Linux processes, run process in terminal, run process in background, process ID, etc...    
- startup scripts in Debian (/etc/init.d directory)
- run Python programs in the shell