DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq
sourcecode
appmodel
pybindsrc
dal_methods.cpp
Go to the documentation of this file.
1
9
#include "pybind11/operators.h"
10
#include "pybind11/pybind11.h"
11
#include "pybind11/stl.h"
12
13
#include "
confmodel/DaqModule.hpp
"
14
#include "
confmodel/Session.hpp
"
15
16
#include "
appmodel/SmartDaqApplication.hpp
"
17
18
#include <sstream>
19
20
namespace
py = pybind11;
21
22
namespace
dunedaq::appmodel::python
{
23
24
struct
ObjectLocator
{
25
ObjectLocator
(
const
std::string& id_arg,
const
std::string& class_name_arg) :
26
id
(id_arg),
class_name
(class_name_arg)
27
{}
28
const
std::string
id
;
29
const
std::string
class_name
;
30
};
31
32
std::vector<ObjectLocator>
33
smart_daq_application_generate_modules
(
const
conffwk::Configuration
& confdb,
const
std::string& app_id,
const
std::string& session_id)
34
{
35
auto
app =
36
const_cast<
conffwk::Configuration
&
>
(confdb).get<appmodel::SmartDaqApplication>(app_id);
37
auto
session
=
38
const_cast<
conffwk::Configuration
&
>
(confdb).get<confmodel::Session>(session_id);
39
40
auto
helper = std::make_shared<ConfigurationHelper>(
session
);
41
app->generate_modules(helper);
42
std::vector<ObjectLocator> mods;
43
for
(
auto
mod : app->get_modules()) {
44
mods.push_back({mod->UID(),mod->class_name()});
45
}
46
return
mods;
47
}
48
49
std::vector<std::string>
smart_daq_application_construct_commandline_parameters
(
const
conffwk::Configuration
& db,
50
const
std::string& session_id,
51
const
std::string& app_id) {
52
const
auto
* app =
const_cast<
conffwk::Configuration
&
>
(db).get<dunedaq::appmodel::SmartDaqApplication>(app_id);
53
const
auto
*
session
=
const_cast<
conffwk::Configuration
&
>
(db).get<dunedaq::confmodel::Session>(session_id);
54
return
app->construct_commandline_parameters(db,
session
);
55
}
56
57
void
58
register_dal_methods
(py::module& m)
59
{
60
py::class_<ObjectLocator>(m,
"ObjectLocator"
)
61
.def(py::init<const std::string&, const std::string&>())
62
.def_readonly(
"id"
, &
ObjectLocator::id
)
63
.def_readonly(
"class_name"
, &
ObjectLocator::class_name
)
64
;
65
66
m.def(
"smart_daq_application_generate_modules"
, &
smart_daq_application_generate_modules
,
"Generate DaqModules"
);
67
m.def(
"smart_daq_application_construct_commandline_parameters"
, &
smart_daq_application_construct_commandline_parameters
,
"Get a version of the command line agruments parsed"
);
68
}
69
70
}
// namespace dunedaq::appmodel::python
SmartDaqApplication.hpp
DaqModule.hpp
Session.hpp
conffwk.Configuration
Definition
Configuration.py:1
dunedaq::appmodel::python
Definition
dal_methods.cpp:22
dunedaq::appmodel::python::smart_daq_application_generate_modules
std::vector< ObjectLocator > smart_daq_application_generate_modules(const conffwk::Configuration &confdb, const std::string &app_id, const std::string &session_id)
Definition
dal_methods.cpp:33
dunedaq::appmodel::python::register_dal_methods
void register_dal_methods(py::module &m)
Definition
dal_methods.cpp:58
dunedaq::appmodel::python::smart_daq_application_construct_commandline_parameters
std::vector< std::string > smart_daq_application_construct_commandline_parameters(const conffwk::Configuration &db, const std::string &session_id, const std::string &app_id)
Definition
dal_methods.cpp:49
session
Definition
session.py:1
dunedaq::appmodel::python::ObjectLocator
Definition
dal_methods.cpp:24
dunedaq::appmodel::python::ObjectLocator::ObjectLocator
ObjectLocator(const std::string &id_arg, const std::string &class_name_arg)
Definition
dal_methods.cpp:25
dunedaq::appmodel::python::ObjectLocator::class_name
const std::string class_name
Definition
dal_methods.cpp:29
dunedaq::appmodel::python::ObjectLocator::id
const std::string id
Definition
dal_methods.cpp:28
Generated on Sat Apr 4 2026 for DUNE-DAQ by
1.12.0