ChimeraTK-DeviceAccess-DoocsBackend 01.11.02
Loading...
Searching...
No Matches
eq_dummy.cc
Go to the documentation of this file.
1#include "eq_dummy.h"
2
3#include <unistd.h>
4
5#include <iostream>
6
7eq_dummy::eq_dummy(const EqFctParameters& p)
8: EqFct(p), prop_someInt("SOME_INT Some integer property", this),
9 prop_someReadonlyInt("SOME_RO_INT Some read-only integer property", this), prop_someFloat("SOME_FLOAT", this),
10 prop_someDouble("SOME_DOUBLE", this), prop_someString("SOME_STRING", this),
11 prop_someBit("SOME_BIT", 0, &this->_someValue, this), prop_someIntArray("SOME_INT_ARRAY", 42, this),
12 prop_someShortArray("SOME_SHORT_ARRAY", 5, this), prop_someLongArray("SOME_LONG_ARRAY", 5, this),
13 prop_someFloatArray("SOME_FLOAT_ARRAY", 5, this), prop_someDoubleArray("SOME_DOUBLE_ARRAY", 5, this),
14 prop_someSpectrum("SOME_SPECTRUM", 100, this), prop_someIIII("SOME_IIII", this), prop_someIFFF("SOME_IFFF", this),
15 prop_someImage("SOME_IMAGE", 640 * 460, this), prop_unsupportedDataType("UNSUPPORTED_DATA_TYPE", this),
16 prop_someZMQInt("SOME_ZMQINT", this),
17 // counter well below the 10000 used by testUnifiesBackendTest
18 counter(1234), startTime(1584020594) {
19 prop_someReadonlyInt.set_ro_access();
20}
21
23
25 prop_someInt.set_value(42);
26 prop_someInt.set_mpnum(counter);
27 prop_someInt.set_tmstmp(startTime, 0);
28
29 prop_someFloat.set_value(3.1415f);
30 prop_someFloat.set_mpnum(counter);
31 prop_someFloat.set_tmstmp(startTime, 0);
32
33 prop_someDouble.set_value(2.8);
34 prop_someDouble.set_mpnum(counter);
35 prop_someDouble.set_tmstmp(startTime, 0);
36
37 prop_someString.set_value("The quick brown fox jumps over the lazy dog.");
38 prop_someString.set_mpnum(counter);
39 prop_someString.set_tmstmp(startTime, 0);
40
41 prop_someBit.set_mpnum(counter);
42 prop_someBit.set_tmstmp(startTime, 0);
43
44 for(int i = 0; i < 42; i++) prop_someIntArray.set_value(3 * i + 120, i);
45 prop_someIntArray.set_mpnum(counter);
46 prop_someIntArray.set_tmstmp(startTime, 0);
47
48 for(int i = 0; i < 5; i++) prop_someShortArray.set_value(10 + i, i);
50 prop_someShortArray.set_tmstmp(startTime, 0);
51
52 for(int i = 0; i < 5; i++) prop_someLongArray.set_value(10 + i, i);
53 prop_someLongArray.set_mpnum(counter);
54 prop_someLongArray.set_tmstmp(startTime, 0);
55
56 for(int i = 0; i < 5; i++) prop_someFloatArray.set_value((float)i / 1000.F, i);
58 prop_someFloatArray.set_tmstmp(startTime, 0);
59
60 for(int i = 0; i < 5; i++) prop_someDoubleArray.set_value((double)i / 333., i);
62 prop_someDoubleArray.set_tmstmp(startTime, 0);
63
64 for(int i = 0; i < 100; i++) prop_someSpectrum.fill_spectrum(i, (float)i / 42.F);
65 prop_someSpectrum.macro_pulse(counter, 0);
66 prop_someSpectrum.set_tmstmp(startTime, 0, 0);
67
68 prop_someIIII.set_value(10, 11, 12, 13);
69 prop_someIIII.set_mpnum(counter);
70 prop_someIIII.set_tmstmp(startTime, 0);
71
72 prop_someIFFF.set_value(10, 2.71828f, 3.14159f, 197.327f);
73 prop_someIFFF.set_mpnum(counter);
74 prop_someIFFF.set_tmstmp(startTime, 0);
75
76 IMH imh{};
77 imh.image_format = TTF2_IMAGE_FORMAT_GRAY;
78 imh.bpp = 2;
79 imh.width = 200;
80 imh.height = 100;
81 imh.event = counter;
82 imh.frame = counter;
83 prop_someImage.set_img_header(&imh); // copies header
84 prop_someImage.fill_image(1);
85 prop_someImage.set_event_id(doocs::EventId{counter});
86 prop_someImage.set_tmstmp(startTime, 0);
87
88 prop_someZMQInt.set_value(0);
89}
90
92 // enable data messaging for property
93 int res = prop_someZMQInt.set_mode(DMSG_EN);
94 if(res != 0) {
95 std::cout << "Could not enable ZeroMQ messaging for prop_someZMQInt. Code: " << res << std::endl;
96 exit(1);
97 }
98}
99
101 set_global_mpnum(counter);
102
103 // set new value of ZMQINT
104 prop_someZMQInt.set_value(prop_someZMQInt.value() + 1);
105 prop_someZMQInt.set_mpnum(counter);
106 prop_someZMQInt.set_tmstmp(startTime, 0);
107
108 // Attach new MP number and timestamp
109 prop_someInt.set_mpnum(counter);
110 prop_someInt.set_tmstmp(startTime, 0);
111
112 prop_someFloat.set_mpnum(counter);
113 prop_someFloat.set_tmstmp(startTime, 0);
114
115 prop_someDouble.set_mpnum(counter);
116 prop_someDouble.set_tmstmp(startTime, 0);
117
118 prop_someString.set_mpnum(counter);
119 prop_someString.set_tmstmp(startTime, 0);
120
121 prop_someBit.set_mpnum(counter);
122 prop_someBit.set_tmstmp(startTime, 0);
123
124 prop_someIntArray.set_mpnum(counter);
125 prop_someIntArray.set_tmstmp(startTime, 0);
126
127 prop_someShortArray.set_mpnum(counter);
128 prop_someShortArray.set_tmstmp(startTime, 0);
129
130 prop_someLongArray.set_mpnum(counter);
131 prop_someLongArray.set_tmstmp(startTime, 0);
132
133 prop_someFloatArray.set_mpnum(counter);
134 prop_someFloatArray.set_tmstmp(startTime, 0);
135
136 prop_someDoubleArray.set_mpnum(counter);
137 prop_someDoubleArray.set_tmstmp(startTime, 0);
138
139 prop_someSpectrum.macro_pulse(counter, 0);
140 prop_someSpectrum.set_tmstmp(startTime, 0, 0);
141
142 prop_someIIII.set_mpnum(counter);
143 prop_someIIII.set_tmstmp(startTime, 0);
144
145 prop_someIFFF.set_mpnum(counter);
146 prop_someIFFF.set_tmstmp(startTime, 0);
147
148 prop_someImage.set_mpnum(counter);
149 prop_someImage.set_tmstmp(startTime, 0);
150
151 // publish new value via ZeroMQ
152 dmsg_info_t db;
153 db.sec = startTime++;
154 db.usec = 0;
155 db.ident = counter++;
156 db.stat = 0;
157 prop_someZMQInt.send(&db);
158
159 // wait some time to limit the rate
160 usleep(10000);
161}
D_double prop_someDouble
Definition eq_dummy.h:16
D_floatarray prop_someFloatArray
Definition eq_dummy.h:24
int64_t counter
Definition eq_dummy.h:35
D_string prop_someString
Definition eq_dummy.h:17
D_longarray prop_someLongArray
Definition eq_dummy.h:23
D_doublearray prop_someDoubleArray
Definition eq_dummy.h:25
D_ifff prop_someIFFF
Definition eq_dummy.h:29
void post_init()
Definition eq_dummy.cc:91
D_int prop_someInt
Definition eq_dummy.h:13
D_spectrum prop_someSpectrum
Definition eq_dummy.h:27
D_bit prop_someBit
Definition eq_dummy.h:19
D_shortarray prop_someShortArray
Definition eq_dummy.h:22
D_iiii prop_someIIII
Definition eq_dummy.h:28
D_intarray prop_someIntArray
Definition eq_dummy.h:21
D_int prop_someZMQInt
Definition eq_dummy.h:33
int64_t startTime
Definition eq_dummy.h:36
void init()
Definition eq_dummy.cc:24
eq_dummy(const EqFctParameters &p)
Definition eq_dummy.cc:7
D_float prop_someFloat
Definition eq_dummy.h:15
void update()
Definition eq_dummy.cc:100
D_image prop_someImage
Definition eq_dummy.h:30
D_int prop_someReadonlyInt
Definition eq_dummy.h:14
virtual ~eq_dummy()
Definition eq_dummy.cc:22