Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Cumbia access to the *hdb* and *hdb++* historical databases
The *cumbia-historicaldb* library provides access to the *hdb* and *hdbpp* historical databases.
In the distribution you will find the following components:
- the C++ library, requiring the *meson* build system and the cumbia and *hdbextractor* dependencies.
The latter can be downloaded from https://github.com/ELETTRA-SincrotroneTrieste/hdbextractor.git
- A Qt library, that simply defines a *reader* and a *factory* that allow integration into a cumbia/Qt
application, so that a *setSource* call with a special syntax can trigger a database data fetch operation.
- A Qt *plugin*, that enables the programmer to load the *cumbia-historicaldb* module as a plugin
- A Qt application, named *qhdbbrowser*, to query the database for stored scalar data and display it
on a graph
- A Qt application, named *hdb-db-profile-manager*, to create, remove and modify database *profiles* (see
the dedicated section below)
## Documentation
https://elettra-sincrotronetrieste.github.io/cumbia-historicaldb/
## Installation
- git clone https://github.com/ELETTRA-SincrotroneTrieste/hdbextractor.git
- cd cumbia-historicaldb
### Base C++ library
- meson builddir
- cd builddir
#### Note
Use as prefix the same path used for the cumbia-libs installation, so that there is no need to
modify the LD_LIBRARY_PATH and the QT_PLUGIN_PATH later:
- meson configure -Dprefix=/usr/local/cumbia-libs
- meson configure -Dlibdir=lib if you want to install libs under *prefix/lib* instead of *prefix/lib64*
- meson configure -Dbuildtype=release|debug
ninja && ninja install
### Qt module
- cd cumbia-historicaldb-qt
There is a top level Qt *pro* file that will build the *Qt library*, the *Qt plugin* and the two aforementioned
applications.
Invoke qmake with the INSTALL_ROOT option matching both the *prefix* specified in the *meson configure* command above
and the cumbia install prefix:
- qmake INSTALL_ROOT=/usr/local/cumbia-libs
- make && make install
Plugins will be installed under *INSTALL_ROOT/lib/qumbia-plugins*, alongside the other *cumbia qt plugins* either from the
main cumbia distribution or from optional ones.
## Database profiles
An application connecting to a database needs to know the database host name, port, user name, password, database
schema and so on. One usually specifies all these options either through the command line or a configuration file.
*cumbia-historicaldb* makes things easier introducing *database profiles*.
The profiles contain the information needed to connect to a historical database through the *hdbextractor* library.
Every application relying on *cumbia-historicaldb* will just need a profile name to use it. Additionally, if no
specific profile is given, a default one is used. If only one profile is defined, it is also the default.
The hdb-db-profile-manager utility described later can be used to mark a profile as default. Adding a new profile does
not alter the default one. This means that if a *second* profile is defined, the *first* still is the default.
Profiles are stored in the user's directory under *.config/cumbia-hdb/db-profiles* or where specified in the file
*cuhdb_config.h* under the *lib/* folder of this distribution.
If the *cumbia-historicaldb-qt* package is compiled and installed as explained before, you can generate, edit and
delete profiles with the utility *hdb-db-profile-manager*. Type the command without any parameter to obtain the help.
### Examples
#### Generate a new profile named hdb_profile1
> hdb-db-profile-manager -a hdb_profile1
Follow the instructions
#### List available profiles
> hdb-db-profile-manager -l
#### Show the configuration of a given profile
> hdb-db-profile-manager hdb_profile1
#### Remove a given profile
> hdb-db-profile-manager -r hdb_profile1
#### Edit an existing profile
hdb-db-profile-manager -e hdb_profile1