Closed mbrosnahan closed 1 year ago
We'd like to minimize the divergence between the winch and non-winch conductor, so that they can be reunited some point in the future. I suggest implementing it in both places. If you don't want it (because the IFCB is vertical), we can just set the interval to 0 or whatever signifies disabled.
To implementor, this is basically what needs to be done:
Add a new state for IFCB_CARTRIDGE_DEBUBBLE
in https://github.com/WHOIGit/PhytO-ARM/blob/main/src/phyto_arm/msg/ConductorStates.msg
Add another variable to the state, last_cartridge_debubble_time
. Initialize it the same way we do last_bead_time
. (At startup, we always pretend that beads were recently run, because they're an exhaustible resource and we might be restarting PhytO-ARM many times while debugging. This doesn't quite apply here.)
Modify the logic for bead_interval
to allow for the value of 0
to disable it. Please follow the same logic/format as for the schedule interval:
https://github.com/WHOIGit/PhytO-ARM/blob/main/src/phyto_arm/src/conductor_node.py#L133-L134
Also update the example config comment for conductor.bead_interval
to match the comment for conductor.schedule.every
.
Copy the logic for the bead_interval
setting, which adds the cartridgedebubble
routine to the playlist. (I would think we would want to run it before beads.)
https://github.com/WHOIGit/PhytO-ARM/blob/main/src/phyto_arm/src/conductor_node.py#L189-L197
Update the example default config file to set conductor.cartridge_debubble_interval = 0
with appropriate comment.
Make the exact same changes across both conductor nodes with no inconsistencies in whitespace, etc. so that it is easier to diff these two files in the future when merging them.
IFCB can accumulate air in its filter cartridges over time when operated on its side. McLane has a built-in routine 'CartridgeDebubble' that pulls air from this space. Task is to update conductor for no winch config so that it calls CartridgeDebubble at a user specified interval (similar to beads interval). This should be more straightforward through because no data are saved -> so no need to address (update/revert) save directory as in the bead case (Task 3).