DUNE-DAQ / timinglibs

0 stars 1 forks source link

OKS schema for timinglibs #98

Closed dianaAntic closed 7 months ago

dianaAntic commented 9 months ago

This is a first pass of the OKS schema implementation for the timing system.

Here’s the UML diagram of the timing schema classes.

final_oks_database_design

I started by looking at the jsonnet files in https://github.com/DUNE-DAQ/timinglibs/tree/develop/schema/timinglibs and creating classes that correspond to these jsonnets. To understand the relationships between the classes, I looked at https://github.com/DUNE-DAQ/timinglibs/blob/develop/python/timinglibs/timing_app_confgen.py and noticed they also rely on a DAQModule. From https://github.com/DUNE-DAQ/timinglibs/blob/develop/schema/timinglibs/timing_app_confgen.jsonnet I saw that timing_app_confgen creates an instance of timing_endpoint_controller and app_confgen.

I also noticed that in the ConfParams classes, they had three fields in common: device_str, hardware_state_recovery_enabled and timing_session_name so I created a BaseConfParams class which the 4 ConfParams classes would inherit from.

I then used the Schema Editor to view the relationships and classes I created in the files attached in this PR and saw the following: class view which ensures that the data has at least been added correctly into the editor. Obviously from the tutorial_diagram.svg we can see that the relationships of the BaseConfParams with its children aren't correct though so I need to figure out how to fix this...

bieryAtFnal commented 8 months ago

Is it true that the target branch for this PR should be the feature/OKS branch instead of the develop branch?

dianaAntic commented 8 months ago

Is it true that the target branch for this PR should be the feature/OKS branch instead of the develop branch?

Yes, this is something I will change ASAP, apologies for the confusion! Update: done

gcrone commented 7 months ago

I just spotted a couple of things 1.) In the schema TimingHardwareManagerPDIParameters has a configuration relationship to TimingHardwareManagerPDIParameters. What is that for? 2.) In TimingHardwareManager.cpp there is a call to configure_uhal() with the json data as an argument and TimingHardwareInterface::configure_uhal() is using the json. This should have been converted to OKS.