DAQ++ git-vmedaq
Brought to you by:
lacasta
The logic: ---------- The logic may seem a bit "involved" but it was prepared to work with CORBA and, therefore, it is based in message passing between the different components. The idea is that MsgManager will receive all the messages from the real DAQ++ objects and distribute them. So, the state of the RunManagers and Modules gets to MsgManager and it sends the corresponding messages to the Objects subscribed, for instance MainWindow, RunMenu or ParamSlider. On the other hand RunMenu will send the DAQ commands module_gui ---------- This class controls the small module window in the main window of wmedaq ParamSlider ----------- This class binds a Module parameter with a GtkAdjustment which can come from a GtkScale, a GtkSpinButton, etc. Changes in the adjustment will be sent to the Module parameter. The class mantains a static list of existing mappings. Widget Updates -------------- This relates the updating of number of triggers, rates, throughput, etc. It is done with WidgetUpdate-based classes that will comprise labels, spin-sliders, gauges, etc. Each monitor window derives from WidgetHolder. Widgets to be updated will register and receive the update signal from the holder together with the update data. This is retreived from any of void RunManager_update(const string &, Update &); void Module_update(const string &, Update &); void Update_all(int &nRm, Update **, int &nMd, Update **); DAQ state and RUnMenu --------------------- DAQ state is show and controlled by a RunMenu. Each RunMenu is associated with a RunManager and will send it the DAQ commands.