update readme + adding pictures
This commit is contained in:
@@ -1,15 +1,33 @@
|
||||
# ITC Pressure Optimizer
|
||||
|
||||
Optimize the pressure setpoint on Mercury ITC depending on Temperature parameters read from the (same) Mercury ITC.
|
||||
Optimize the pressure setpoint on a Mercury ITC depending on temperature parameters read from the (same) Mercury ITC.
|
||||
Pressures are calculated as a function of temperature setpoint, actual temperature, heater power, and currently set pressure.
|
||||
This driver is a port of mitcpresscio.c, with an event
|
||||
|
||||
Pressure are calculated in function of temperature setpoint, actual temperature, heater power and currently set pressure.
|
||||
# Preview
|
||||

|
||||
|
||||
This driver is only a port of mitcpresscio.c, using the c++ TRIUMF framework instead of legacy C
|
||||
# Download
|
||||
|
||||
# ITC Pressure Optimizer DD Settings for associated Equipment
|
||||
```bash
|
||||
$ git clone ....
|
||||
```
|
||||
|
||||
Path : ```/Equipment/<name>/Settings/Devices/MITCPRESSC/DD/```
|
||||
# Compile
|
||||
```bash
|
||||
$ cmake -B build
|
||||
$ cmake --build build
|
||||
```
|
||||
|
||||
# Run
|
||||
```bash
|
||||
$ $pwd/build/itcPressureOptimizer <frontend_name> <equipment_name>
|
||||
```
|
||||
# Configuration
|
||||
|
||||
In ```/Equipment/<name>/Settings/Devices/MITCPRESSC/DD/```, you can modify settings regarding where to read/write values to the equipment.
|
||||
|
||||
Default values are :
|
||||
|
||||
| Equipment | variox0 | heliox0 |
|
||||
|-----------|---------|---------|
|
||||
@@ -23,3 +41,20 @@ Path : ```/Equipment/<name>/Settings/Devices/MITCPRESSC/DD/```
|
||||
|
||||
*NOTE: OutputPressSPIndex and InputVarioxPowIndex are different for variox0
|
||||
and heliox0*
|
||||
|
||||
|
||||
# Usage
|
||||
|
||||
In ```/Equipment/<name>/Variables/Demand``` you can specify demand to the equipment. See **Preview**
|
||||
|
||||
# Project structure
|
||||
|
||||
This is the execution flow graph.
|
||||
|
||||

|
||||
|
||||
For cleaner code, all execution and data flow pass through an EventBus. Objects can subscribe to one or many specific event types. They can also publish an event, which will be dispatched to all subscribers by invoking their callbacks.
|
||||
|
||||
`OdbHotlink` triggers the execution flow whenever a value changes. Only `DemandHandler` and `InputHandler` are registered.
|
||||
|
||||
`itc_pressure_optimizer` instantiates all components and publishes an `InitEvent` first, allowing all handlers to initialize and connect to the ODB. It also periodically publishes a `PollEvent` every second to update time-dependent averages.
|
||||
+8
-7
@@ -6,15 +6,15 @@ class EventBus <<broker>> {
|
||||
+ subscribe()
|
||||
}
|
||||
|
||||
class Demand
|
||||
class itc
|
||||
class Settings
|
||||
class Input
|
||||
class Pressure {
|
||||
class Demand as "DemandHandler"
|
||||
class itc as "itc_pressure_optimizer"
|
||||
class Settings as "SettingsHandler"
|
||||
class Input as "InputHandler"
|
||||
class Pressure as "PressureCalculator" {
|
||||
class Average
|
||||
}
|
||||
class Output
|
||||
class Feedback
|
||||
class Output as "OutputHandler"
|
||||
class Feedback as "FeedbackHandler"
|
||||
|
||||
Demand -.> Pressure
|
||||
Demand -.> Feedback
|
||||
@@ -31,4 +31,5 @@ Input -.> Output
|
||||
Input -.> Pressure
|
||||
|
||||
Pressure -.> Feedback
|
||||
|
||||
@enduml
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 30 KiB |
Reference in New Issue
Block a user