As with the documentation, I have ambition but no set timescale in mind for these.
- Integrate and test Patrick's temporary top up logic for the Lady Hanham site.
- Update the software on hanhampi and the associated gate valves (Done 15 March 2022].
- Install the automatic software update script (Done 15 March 2022)
- Create new, up-to-date river system VMs to aid testing (Done ~June 2022)
- Test and fix any issues with the top up logic (Not Started)
- Release a minor new version of the river system software once this milestone is reached (Not Started)
- Create and integrate water backup logic (for someone else to do).
- Terry wrote the Sump Pi and Wendy Pi backup logic (Done ~June 2022)
- Test and integrate Sump Pi backup logic into the system (Not Started)
- Test and integrate Wendy Pi backup logic into the system (Not Started)
- Determine if any backup logic needs to be created for the other sites. (Not Started)
- General clean-up and refactor.
- Refactor various parts of the code to improve maintainability (In Progress 40% - 26 August 2022)
- Improve in-software documentation for any undocumented/incorrectly documented methods and classes (In Progress 20% - 26 August 2022).
- Improve unit and integration test coverage to increase confidence in the software (Not Started)
- Fix some outstanding minor issues (In Progress - 26 August 2022)
- Database changes
- Update the database schema on the NAS box to support manual control features and improve stability (Not Started)
- ^ This will mean clearing the database on the NAS box and starting again.
- Change the way the database integrity check works so it doesn't delay software startup on the NAS box (Not Started)
- Update the NAS Box VM to reflect these changes (Not Started)
- Upload this new database schema to this webserver to ensure easy set-up in the future (Not Started)
- Update the database backup and restore scripts (if needed) to ensure they remain operable (Not Started)
- Update the NAS Box setup instructions (if needed) to reflect these changes (Not Started)
- Implement a watchdog to automatically restart the river system software in the event of a crash (Not Started)
- Attempt to finally fix the random-crashing issue with the NAS box (Not Started)
- After this, non-glossary design documentation can be written as there will be no more major changes.
- Improve ability to test without hardware.
- A CLI will be devised to be able to set different probe levels, valve positions, motor states, and float switch values to test the system more completely using the VMs (Not Started)
- Other improvements.
- Attempt to prevent control logic hangs when the database is responding slowly or is offline (Not Started)
- Make each site store a short history of the system state to ensure functionality is maintained if the database is unavailable for a short period of time (Not Started)
- Fix clean shutdown of the software when unhandled errors have occurred (Not Started)
- Add a way for each software thread to report unrecoverable errors and trigger the software to log the event (including with the database if possible) and automatically restart (Not Started)
- Ensure a basic level of software functionality in the event of the database being empty (Not Started)
- Fix whatever issues there are with the site-wide river system software updater that prevent reliable operation (In Progress 10% - 26 August 2022)
- If a gate valve is stuck, back off to avoid overheating the motor, and report the error (Not Started)
- Improve response time to requests to eg open a valve by responding as soon as messages arrive (Not Started).
- Implement a new "SYNC" message to immediately reset the reading interval to keep the systems in sync (Not Started)
- Various other small changes and improvements (In Progress - 26 August 2022)
The following features were decided to be unimportant but nice to have. I will not be implementing them, but they are noted here in case they are wanted in the future.
Code: Select all
- Make sure eg Pumps are stopped and valves are shut before the software reboots/shuts down?
- Or could this lead to overflows or valve/pump damage if this isn't coordinated very carefully?
- Would have to be very careful to be sure that nothing would be broken.
- Could cause the sump to run dry or overflow if everything is left as is.
- This is not a huge issue for reboots because the reboot is quick.
- We will need someone on-site anyway for shutdown, so not a huge issue.