Core concepts
Bio-C brings together the monitoring and control of a bioreactor. It reads measurements from connected devices and lets operators and automated processes adjust equipment such as pumps and gas flow controllers from one system.
What Bio-C is trying to solve
A reactor setup should be able to grow with the experiment. Some existing biocontrollers restrict you to a fixed set of devices, such as a single pH probe. Bio-C is designed to support an arbitrary number of devices: adding a second probe or another pump should not mean rethinking the whole controller.
There can also be several sources asking those devices to do different things. An operator might set a pump speed at the reactor while a control loop or the BCS sends its own setpoint. Bio-C needs to sort out which request takes effect without compromising the safety of the person standing in front of the reactor. That means giving the local operator a way to take control that remote requests cannot override, while still allowing safety processes to intervene. The authority structure handles these competing requests.
That flexibility creates some technical challenges. A control loop needs to refer to the probe doing a particular job, even if someone replaces the physical probe. This is why Bio-C uses aliases for peripherals. It also needs a common way to describe what each device can measure and control, so the control logic and GUI can work with different devices without needing a separate implementation for every model. The following chapters explain how these ideas fit into the system architecture.
Crate overview
The crate map groups executable modules, supporting utilities, and drivers. Arrows show which groups shared code supports and where drivers are used.