Architectural Design
- The remote pis need to be able to control their own subsystems - we won't have just one "master" pi.
- ^ In order to do this, they must be able to access each other's readings somehow:
- Making more sockets for connections between pis will get very complicated very quickly - bad idea.
- Instead, we will use Terry's spare NAS box to try to set up a database server, and have the pis send readings to that instead.
- Classes that represent devices, and classes that help manage those classes (eg control threads) need to be separated.
- These should go in a separate python file in Tools/.
- Sumppi should read the sockets configuration for each site from the sub-dictionary for that site, rather than duplicating it.
- This helps prevent errors when updating the configuration.
- The socket name and ID will need to be stored under the settings for each site.
- Log files will be rotated as well as readings files.
- Files will be rotated every day at midnight.
- There will be separate directories for archived files (from previous days), and the currently-in-use files.
- If the currently-in-use log or readings file(s) are deleted, they will automatically be re-created, and there will be a warning in the log file stating what has happened.
- The "THIS_IS_THE_X_DIRECTORY" files will be renamed to be hidden, to avoid confusion and difficulty copying the files.
- Archived files will be compressed.
- TODO: What compression format? Gzip?
- Do some refactoring/general cleanup.
- Check everything is still working as it should (as much as possible).
- This includes writing software unit tests.
- (Integration tests will come later )
- Change the version number to 0.11.0~pre1 (I feel we should start using pre-release & release-candidate version numbers now for more clarity).