This library contains the projects ControlComponents.Core, ControlComponents.ML and ControlComponent.Frame.
- ControlComponents.Core provides basic functionality to create ControlComponents as defined in [BaSyx](https://wiki.eclipse.org/BaSyx_/_Documentation_/_API_/_ControlComponent#Service_Interface).
- ControlComponents.ML provides basic functionality to extend ControlComponents with Reinforcement Learning specific interfaces.
- ControlComponents.Frame provides the FrameControlComponent, which can be used to extract operation modes and use those in a different component. The relevant states and calls are synchronized between those two components.
This library supports netstandard2.0 to be used in Unity3D.
# Usage
Compile the project by running `dotnet build`
Use the resulting .dll files in your project to access control component feature of this library
Use the resulting .dll files in your project to access control component feature of this library.
## ControlComponent
By extending the OperationMode class and overriding the state specific methods, you can inject your own logic and encapsulate it in a BaSys ControlComponent. Create or extend the ControlComponent class and pass OperationModes and OrderOutputs to it.
## OperationMode
Inheriting the OperationModeBase class allows you to override the execution state method to inject your process logic.
You can find an example [here](https://git.rwth-aachen.de/tobias.rink/pts) in the PTS.ControlComponents project.