ddt 1.1.0
Loading...
Searching...
No Matches
ddtSubscriberSimulator.hpp
Go to the documentation of this file.
1
21#ifndef DDTSUBSCRIBERSIMULATOR_HPP_
22#define DDTSUBSCRIBERSIMULATOR_HPP_
23
24#include <cpl.h>
25#undef I
26#undef arg
27
28#include <algorithm>
29#include <boost/algorithm/string.hpp>
30#include <boost/bind/bind.hpp>
31#include <boost/signals2/signal.hpp>
32#include <iostream>
33#include <typeinfo>
34
42#include "ddt/ddtLogger.hpp"
43#include "ddt/imageBuffer.hpp"
44#include "ddt/imageIO.hpp"
45#include "ddt/initCpl.hpp"
46
47namespace mal = ::elt::mal;
48namespace datatransfer = ::elt::ddt::datatransfer;
49
50namespace ddt {
51
56 IMAGETRANSFER = 1,
57 OSCILLOSCOPE = 2,
58 MULTIDIM = 3,
61};
62
66union R4 {
70 float i;
71
75 unsigned char c[4];
76};
77
82 public:
87
92
97 int Run() final;
98
102 bool Init(int argc, char** argv);
103
108 int RunTransfer();
109
110 private:
111 void ProcessNewData() final;
112 void ProcessNewDataOsc();
113 void ProcessNewDataMultiDim();
114 void PrintStatistics();
115 void DumpAsFile(ddt::DataSample* const data_sample, const std::shared_ptr<DdtEncDec> encDec);
116
117 cpl_image* CreateNewImageFromDataSample(ddt::DataSample* const sample,
118 const int bytes_per_pixel,
119 const int num_pix_x,
120 const int num_pix_y,
121 const uint32_t data_type,
122 bool* const unwrap_only);
123 cpl_propertylist* LoadWCSFromMetadata(const std::shared_ptr<DdtEncDec> enc_dec);
124
125 void LogMetaDataBase(DataSample* const data_sample,
126 const std::shared_ptr<DdtEncDec> enc_dec);
127 void LogMetaDataImage2D(DataSample* const data_sample,
128 const std::shared_ptr<DdtEncDecImage2D> enc_dec_2d);
129 void LogMetaDataImage3D(DataSample* const data_sample,
130 const std::shared_ptr<DdtEncDecImage3D> enc_dec_3d);
131 void LogMetaDataBinaryxD(DataSample* const data_sample,
132 const std::shared_ptr<DdtEncDecBinaryxD> enc_dec_xd);
133 void LogSimulatorStart(const std::string use_case);
134 void LogWcsInfo(std::shared_ptr<DdtEncDec> enc_dec);
135
136 std::vector<std::string> GetDimensions(DataSample* const data_sample);
137
138 std::unique_ptr<DdtDataSubscriber> subscriber;
139
140 DdtLogger* logger = nullptr;
141 CommandLineParserBuilder* builder = nullptr;
142
143 std::string broker_uri;
144 std::string data_stream_identifier;
145 int reading_interval = 10;
146 std::string remote_broker_uri;
147 int mode = 1;
148 bool statistics = false;
149 bool dump_data = false;
150 std::string dump_folder;
151
152 std::atomic<bool> processing_active;
153
154 boost::signals2::connection connection;
155
156 const int BYTES_STEP = 2;
157};
158
159} // namespace ddt
160
161#endif /* DDTSUBSCRIBERSIMULATOR_HPP_ */
162
Definition: ddtEncDecBinaryxD.hpp:48
Definition: ddtEncDecImage2D.hpp:57
Definition: ddtEncDecImage3D.hpp:54
Definition: ddtEncDec.hpp:65
Definition: commandLineParserBuilder.hpp:28
Definition: ddtDataSubscriberApplication.hpp:28
Definition: ddtDataSubscriber.hpp:41
Definition: ddtLogger.hpp:51
Definition: ddtSubscriberSimulator.hpp:81
~DdtSubscriberSimulator() final
Definition: ddtSubscriberSimulator.cpp:55
bool Init(int argc, char **argv)
Definition: ddtSubscriberSimulator.cpp:69
int RunTransfer()
Definition: ddtSubscriberSimulator.cpp:122
int Run() final
Definition: ddtSubscriberSimulator.cpp:110
Builder for the command line parser.
Simulator for receiving data. This is a base class for data subscriber applications.
Data Subscriber. This class provides the functionality for subscriber applications to register / unre...
Factory for DdtDataPublishers and DdtDataSubscribers. This class provides factory methods for creatin...
DDT EncDecMultiDim. Class to encode / decode multi-dimensional array data samples....
DDT EncDecImage2D. Class to encode / decode 2-dimensional data samples containing image data....
DDT EncDecMultiLayer. Class to encode / decode multi-layer image data samples. Class to encode / deco...
Class to wrap the usage of log4cplus as logging utility. This file provides a wrapper class for the u...
Image Buffer class, handles internal CPL image. This file is part of the DDT Image Handling Library a...
Image IO function declaration. This file is part of the DDT Image Handling Library and provides funct...
Image IO function declaration. This file is part of the DDT Image Handling Library and provides initi...
Definition: ddtClient.hpp:39
SubscriberModes
Definition: ddtSubscriberSimulator.hpp:55
@ OSCILLOSCOPE
Definition: ddtPublisherSimulator.hpp:51
@ MULTIDIM
Definition: ddtPublisherSimulator.hpp:52
@ SEGMENTEDIMAGE
Definition: ddtPublisherSimulator.hpp:54
@ CONFIGURATIONMAP
Definition: ddtPublisherSimulator.hpp:53
@ IMAGETRANSFER
Definition: ddtPublisherSimulator.hpp:50
Definition: ddtMemoryAccessor.hpp:184
Definition: ddtSubscriberSimulator.hpp:66
unsigned char c[4]
Definition: ddtSubscriberSimulator.hpp:75
float i
Definition: ddtSubscriberSimulator.hpp:70