Overview about control module inner workings #406
BenediktBurger
started this conversation in
Show and tell
Replies: 2 comments
-
|
Yes this is it. I usually use this representation for explanation for the user: maybe we could put your diagram (or a clearer view of it as I find difficult to read the one you produced with this github extension). Do you know diagrams: https://diagrams.mingrammer.com/docs/getting-started/examples? |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
@malik-irain could you have a look at simple working diagram to highlight inner workings of the control module: from the API to the inner plugin things? |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I found it difficult to grasp, how the different parts of a control module work together: where does the plugin defined part fit in, where is which thread, how do they communicate.
This is my summary as I understand it and how they communicate (from BenediktBurger#2).
flowchart TD subgraph main_thread[main module thread] subgraph DAQ_Move["DAQ_Move(ParameterControlModule, ParameterManager, ControlModule)"] init_hardware[[init_hardware]] thread_status[[thread_status]] command_hardware(["command_hardware(ThreadCommand)"]) status_sig(["status_sig(str)"]) _update_settings_signal(["_update_settings_signal(edict)"]) process_tcpip_cmds[["process_tcpip_cmds"]] _command_tcpip(["_command_tcpip(ThreadCommand)"]) end end subgraph hardware_thread[hardware thread] subgraph DAQ_Move_Hardware queue_command[[queue_command]]-->status_sigH status_sigH(["status_sig(ThreadCommand)"]) update_settings[[update_settings]] end subgraph plugin["DAQ_Move_Whatever(DAQ_Move_base)"] emit_status[[emit_status]] update_settingsP[[update_settings]] end DAQ_Move_Hardware==>|"contains('hardware')"|plugin emit_status-->status_sigH update_settings-->|"subpath 'move_settings'"|update_settingsP end subgraph Listener cmd_signal([cmd_signal]) queue_commandL[[queue_command]] end init_hardware-->|starts|hardware_thread init_hardware-->|inits|DAQ_Move_Hardware DAQ_Move==>|"contains('hardware')"|DAQ_Move_Hardware DAQ_Move==>|"contains('ui')"|DAQ_Move_UI status_sigH -.->thread_status command_hardware -.->queue_command _update_settings_signal-.->update_settings cmd_signal-.->process_tcpip_cmds DAQ_Move==>|"contains('_leco_client')"|Listener _command_tcpip-.->queue_commandLLegend:
init_hardware) are methods(slots)status_sig) are signals with their respective typeDAQ_Move.hardware == DAQ_Move_Hardware()Beta Was this translation helpful? Give feedback.
All reactions