Refactored the hardware interface and implementation to be more flexible, to allow enabling/disabling individual hardware sections and allow adding and switching between alternate implementations of hardware components.
All the simulation versions of the hardware were tested and working. The basic temperature controller was tested with a "w1_therm" thermometer and a heating element and pump setup for the heaters but no hardware setup for cooling. The syringepump reagent dispenser mode was also tested with hardware. Stirrer has not been tested with hardware but should work since it's controlled the same way as the heating element/pumps. Thermometer in serial mode was the old implementation for getting temperature and I don't have the hardware to test.
TL;DR
Refactored the hardware interface and implementation to be more flexible, to allow enabling/disabling individual hardware sections and allow adding and switching between alternate implementations of hardware components.
All the simulation versions of the hardware were tested and working. The basic temperature controller was tested with a "w1_therm" thermometer and a heating element and pump setup for the heaters but no hardware setup for cooling. The syringepump reagent dispenser mode was also tested with hardware. Stirrer has not been tested with hardware but should work since it's controlled the same way as the heating element/pumps. Thermometer in serial mode was the old implementation for getting temperature and I don't have the hardware to test.
What
What is affected by this PR?
Testing
How was this tested?
Notes
How was your day?