9 #include <mal/OpcUaMal.hpp>
10 #include <mal/util/OpcUaUtil.hpp>
11 #include <mal/ps/OpcUaDataEntity.hpp>
12 #include <mal/rr/OpcUaClientRrEntity.hpp>
13 #include <mal/bindings/opcua/OpcUaIcdBindings.hpp>
14 #include <mal/types/malTypesOpcUaImpl.hpp>
26 static constexpr
size_t dataValueCount =
28 + ::elt::mal::icd::opcua::Scalar<float>::dataValueCount
29 + ::elt::mal::icd::opcua::Scalar<float>::dataValueCount
32 static std::unique_ptr<::exmalif::TelPosition> makeImpl();
38 static constexpr
size_t dataValueCount =
40 + ::elt::mal::icd::opcua::Scalar<float>::dataValueCount
41 + ::elt::mal::icd::opcua::Scalar<float>::dataValueCount
44 static std::unique_ptr<::exmalif::AxesPosition> makeImpl();
50 static constexpr
size_t dataValueCount =
52 + ::elt::mal::icd::opcua::Scalar<std::string>::dataValueCount
53 + ::elt::mal::icd::opcua::Scalar<std::string>::dataValueCount
56 static std::unique_ptr<::exmalif::LogInfo> makeImpl();
72 public ::elt::mal::ps::OpcUaDataEntity<::exmalif::TelPosition>
81 void setRa(
float value)
override {
95 std::unique_ptr<::exmalif::TelPosition>
clone()
const override {
96 return std::unique_ptr<::exmalif::TelPosition>(
new TelPosition(*
this));
104 std::size_t seed = 0;
108 std::unique_ptr<::exmalif::TelPosition>
cloneKey()
const override {
109 std::unique_ptr<::exmalif::TelPosition> entity(
new TelPosition);
120 return ::elt::mal::icd::opcua::MalOpcUaTraits<::exmalif::TelPosition>::dataValueCount;
124 resultIterator = dm_ra.assignFromDataValue(
"::exmalif::TelPosition.ra", resultIterator);
125 resultIterator = dm_dec.assignFromDataValue(
"::exmalif::TelPosition.dec", resultIterator);
129 auto* fieldIterator = m_dataValues.data();
131 fieldIterator = dm_ra.assignToDataValue(fieldIterator);
132 fieldIterator = dm_dec.assignToDataValue(fieldIterator);
134 return m_dataValues.data();
138 dm_ra = from.getRa();
139 dm_dec = from.getDec();
143 ::elt::mal::icd::opcua::Scalar<float> dm_ra;
144 ::elt::mal::icd::opcua::Scalar<float> dm_dec;
146 mutable std::array<UA_DataValue, ::elt::mal::icd::opcua::MalOpcUaTraits<::exmalif::TelPosition>::dataValueCount> m_dataValues;
151 public ::elt::mal::ps::OpcUaDataEntity<::exmalif::AxesPosition>
174 std::unique_ptr<::exmalif::AxesPosition>
clone()
const override {
175 return std::unique_ptr<::exmalif::AxesPosition>(
new AxesPosition(*
this));
183 std::size_t seed = 0;
187 std::unique_ptr<::exmalif::AxesPosition>
cloneKey()
const override {
188 std::unique_ptr<::exmalif::AxesPosition> entity(
new AxesPosition);
199 return ::elt::mal::icd::opcua::MalOpcUaTraits<::exmalif::AxesPosition>::dataValueCount;
203 resultIterator = dm_alt.assignFromDataValue(
"::exmalif::AxesPosition.alt", resultIterator);
204 resultIterator = dm_az.assignFromDataValue(
"::exmalif::AxesPosition.az", resultIterator);
208 auto* fieldIterator = m_dataValues.data();
210 fieldIterator = dm_alt.assignToDataValue(fieldIterator);
211 fieldIterator = dm_az.assignToDataValue(fieldIterator);
213 return m_dataValues.data();
217 dm_alt = from.getAlt();
218 dm_az = from.getAz();
222 ::elt::mal::icd::opcua::Scalar<float> dm_alt;
223 ::elt::mal::icd::opcua::Scalar<float> dm_az;
225 mutable std::array<UA_DataValue, ::elt::mal::icd::opcua::MalOpcUaTraits<::exmalif::AxesPosition>::dataValueCount> m_dataValues;
230 public ::elt::mal::ps::OpcUaDataEntity<::exmalif::LogInfo>
236 return dm_level.get();
244 return dm_logger.get();
253 std::unique_ptr<::exmalif::LogInfo>
clone()
const override {
254 return std::unique_ptr<::exmalif::LogInfo>(
new LogInfo(*
this));
262 std::size_t seed = 0;
266 std::unique_ptr<::exmalif::LogInfo>
cloneKey()
const override {
267 std::unique_ptr<::exmalif::LogInfo> entity(
new LogInfo);
278 return ::elt::mal::icd::opcua::MalOpcUaTraits<::exmalif::LogInfo>::dataValueCount;
282 resultIterator = dm_level.assignFromDataValue(
"::exmalif::LogInfo.level", resultIterator);
283 resultIterator = dm_logger.assignFromDataValue(
"::exmalif::LogInfo.logger", resultIterator);
287 auto* fieldIterator = m_dataValues.data();
289 fieldIterator = dm_level.assignToDataValue(fieldIterator);
290 fieldIterator = dm_logger.assignToDataValue(fieldIterator);
292 return m_dataValues.data();
296 dm_level = from.getLevel();
297 dm_logger = from.getLogger();
301 ::elt::mal::icd::opcua::Scalar<std::string> dm_level;
302 ::elt::mal::icd::opcua::Scalar<std::string> dm_logger;
304 mutable std::array<UA_DataValue, ::elt::mal::icd::opcua::MalOpcUaTraits<::exmalif::LogInfo>::dataValueCount> m_dataValues;
310 public virtual ::elt::mal::rr::OpcUaClientRrEntity<::exmalif::StdCmdsAsync>
315 const ::elt::mal::Uri& uri,
316 const std::vector<std::shared_ptr<::elt::mal::rr::qos::QoS>>& standardQoS,
317 const ::elt::mal::Mal::Properties& malSpecificProperties,
318 const std::shared_ptr<::elt::mal::OpcUaMal>& mal)
320 ::elt::mal::rr::OpcUaClientRrEntity<StdCmdsAsync>(uri, standardQoS, malSpecificProperties, mal)
324 ::elt::mal::future<std::string>
Stop()
override {
325 const auto methodSeqNr = 0;
328 constexpr
size_t dataValueCount =
332 std::array<UA_Variant, dataValueCount> arguments;
334 const auto extractor = [](
const UA_Variant& resultVariant) {
335 ::elt::mal::icd::opcua::Scalar<std::string> result;
336 result.assignFromVariant(
"StdCmds::Stop (return value)", &resultVariant);
340 return callMethodAsync<std::string>(methodSeqNr, arguments, extractor);
344 ::elt::mal::future<std::string>
Init()
override {
345 const auto methodSeqNr = 1;
348 constexpr
size_t dataValueCount =
352 std::array<UA_Variant, dataValueCount> arguments;
354 const auto extractor = [](
const UA_Variant& resultVariant) {
355 ::elt::mal::icd::opcua::Scalar<std::string> result;
356 result.assignFromVariant(
"StdCmds::Init (return value)", &resultVariant);
360 return callMethodAsync<std::string>(methodSeqNr, arguments, extractor);
364 ::elt::mal::future<std::string>
Reset()
override {
365 const auto methodSeqNr = 2;
368 constexpr
size_t dataValueCount =
372 std::array<UA_Variant, dataValueCount> arguments;
374 const auto extractor = [](
const UA_Variant& resultVariant) {
375 ::elt::mal::icd::opcua::Scalar<std::string> result;
376 result.assignFromVariant(
"StdCmds::Reset (return value)", &resultVariant);
380 return callMethodAsync<std::string>(methodSeqNr, arguments, extractor);
384 ::elt::mal::future<std::string>
Enable()
override {
385 const auto methodSeqNr = 3;
388 constexpr
size_t dataValueCount =
392 std::array<UA_Variant, dataValueCount> arguments;
394 const auto extractor = [](
const UA_Variant& resultVariant) {
395 ::elt::mal::icd::opcua::Scalar<std::string> result;
396 result.assignFromVariant(
"StdCmds::Enable (return value)", &resultVariant);
400 return callMethodAsync<std::string>(methodSeqNr, arguments, extractor);
404 ::elt::mal::future<std::string>
Disable()
override {
405 const auto methodSeqNr = 4;
408 constexpr
size_t dataValueCount =
412 std::array<UA_Variant, dataValueCount> arguments;
414 const auto extractor = [](
const UA_Variant& resultVariant) {
415 ::elt::mal::icd::opcua::Scalar<std::string> result;
416 result.assignFromVariant(
"StdCmds::Disable (return value)", &resultVariant);
420 return callMethodAsync<std::string>(methodSeqNr, arguments, extractor);
424 ::elt::mal::future<std::string>
Status()
override {
425 const auto methodSeqNr = 5;
428 constexpr
size_t dataValueCount =
432 std::array<UA_Variant, dataValueCount> arguments;
434 const auto extractor = [](
const UA_Variant& resultVariant) {
435 ::elt::mal::icd::opcua::Scalar<std::string> result;
436 result.assignFromVariant(
"StdCmds::Status (return value)", &resultVariant);
440 return callMethodAsync<std::string>(methodSeqNr, arguments, extractor);
444 ::elt::mal::future<std::string>
Config()
override {
445 const auto methodSeqNr = 6;
448 constexpr
size_t dataValueCount =
452 std::array<UA_Variant, dataValueCount> arguments;
454 const auto extractor = [](
const UA_Variant& resultVariant) {
455 ::elt::mal::icd::opcua::Scalar<std::string> result;
456 result.assignFromVariant(
"StdCmds::Config (return value)", &resultVariant);
460 return callMethodAsync<std::string>(methodSeqNr, arguments, extractor);
464 ::elt::mal::future<std::string>
Exit()
override {
465 const auto methodSeqNr = 7;
468 constexpr
size_t dataValueCount =
472 std::array<UA_Variant, dataValueCount> arguments;
474 const auto extractor = [](
const UA_Variant& resultVariant) {
475 ::elt::mal::icd::opcua::Scalar<std::string> result;
476 result.assignFromVariant(
"StdCmds::Exit (return value)", &resultVariant);
480 return callMethodAsync<std::string>(methodSeqNr, arguments, extractor);
484 ::elt::mal::future<std::string>
SetLogLevel(
const std::shared_ptr<::exmalif::LogInfo>& info)
override {
485 const auto methodSeqNr = 8;
487 ::elt::mal::icd::opcua::NestedStructure<::exmalif::LogInfo> arg_info;
490 constexpr
size_t dataValueCount =
492 + decltype(arg_info)::dataValueCount
495 std::array<UA_Variant, dataValueCount> arguments;
496 auto* argIterator = arguments.data();
498 argIterator = arg_info.assignToVariant(argIterator);
500 const auto extractor = [](
const UA_Variant& resultVariant) {
501 ::elt::mal::icd::opcua::Scalar<std::string> result;
502 result.assignFromVariant(
"StdCmds::SetLogLevel (return value)", &resultVariant);
506 return callMethodAsync<std::string>(methodSeqNr, arguments, extractor);
510 ::elt::mal::future<std::string>
Preset(
const std::shared_ptr<::exmalif::TelPosition>& pos)
override {
511 const auto methodSeqNr = 9;
513 ::elt::mal::icd::opcua::NestedStructure<::exmalif::TelPosition> arg_pos;
516 constexpr
size_t dataValueCount =
518 + decltype(arg_pos)::dataValueCount
521 std::array<UA_Variant, dataValueCount> arguments;
522 auto* argIterator = arguments.data();
524 argIterator = arg_pos.assignToVariant(argIterator);
526 const auto extractor = [](
const UA_Variant& resultVariant) {
527 ::elt::mal::icd::opcua::Scalar<std::string> result;
528 result.assignFromVariant(
"StdCmds::Preset (return value)", &resultVariant);
532 return callMethodAsync<std::string>(methodSeqNr, arguments, extractor);
536 ::elt::mal::future<std::string>
Move(
const std::shared_ptr<::exmalif::AxesPosition>& pos)
override {
537 const auto methodSeqNr = 10;
539 ::elt::mal::icd::opcua::NestedStructure<::exmalif::AxesPosition> arg_pos;
542 constexpr
size_t dataValueCount =
544 + decltype(arg_pos)::dataValueCount
547 std::array<UA_Variant, dataValueCount> arguments;
548 auto* argIterator = arguments.data();
550 argIterator = arg_pos.assignToVariant(argIterator);
552 const auto extractor = [](
const UA_Variant& resultVariant) {
553 ::elt::mal::icd::opcua::Scalar<std::string> result;
554 result.assignFromVariant(
"StdCmds::Move (return value)", &resultVariant);
558 return callMethodAsync<std::string>(methodSeqNr, arguments, extractor);
563 throw std::runtime_error(
"AMI is not implemented in OPC-UA");
569 public virtual ::elt::mal::rr::OpcUaSyncClientBase
574 const ::elt::mal::Uri& uri,
575 const std::vector<std::shared_ptr<::elt::mal::rr::qos::QoS>>& standardQoS,
576 const ::elt::mal::Mal::Properties& malSpecificProperties,
577 const std::shared_ptr<::elt::mal::OpcUaMal>& mal)
579 ::elt::mal::rr::OpcUaSyncClientBase(uri, standardQoS, malSpecificProperties, mal),
580 m_asyncClient(uri, standardQoS, malSpecificProperties, mal)
585 return unpackAsync(m_asyncClient.
Stop());
590 return unpackAsync(m_asyncClient.
Init());
595 return unpackAsync(m_asyncClient.
Reset());
600 return unpackAsync(m_asyncClient.
Enable());
605 return unpackAsync(m_asyncClient.
Disable());
610 return unpackAsync(m_asyncClient.
Status());
615 return unpackAsync(m_asyncClient.
Config());
620 return unpackAsync(m_asyncClient.
Exit());
624 std::string
SetLogLevel(
const std::shared_ptr<::exmalif::LogInfo>& info)
override {
625 return unpackAsync(m_asyncClient.
SetLogLevel(info));
629 std::string
Preset(
const std::shared_ptr<::exmalif::TelPosition>& pos)
override {
630 return unpackAsync(m_asyncClient.
Preset(pos));
634 std::string
Move(
const std::shared_ptr<::exmalif::AxesPosition>& pos)
override {
635 return unpackAsync(m_asyncClient.
Move(pos));
640 throw std::runtime_error(
"AMI is not implemented in OPC-UA");
644 return m_asyncClient.asyncConnect();
647 ::elt::mal::rr::ListenerRegistration
649 return m_asyncClient.registerConnectionListener(std::move(listener));
Definition: exmalifOpcUaImpl.hpp:70
::elt::mal::future< std::string > Stop() override
Definition: exmalifOpcUaImpl.hpp:324
Definition: Exmalif.hpp:28
std::unique_ptr<::exmalif::LogInfo > clone() const override
Definition: exmalifOpcUaImpl.hpp:253
std::size_t keyHash() const
Definition: exmalifOpcUaImpl.hpp:182
::elt::mal::future< std::string > Config() override
Definition: exmalifOpcUaImpl.hpp:444
bool keyEquals(const ::exmalif::AxesPosition &other) const override
Definition: exmalifOpcUaImpl.hpp:178
std::size_t keyHash() const
Definition: exmalifOpcUaImpl.hpp:103
std::string Init() override
Definition: exmalifOpcUaImpl.hpp:589
void setLevel(const std::string &value) override
Definition: exmalifOpcUaImpl.hpp:239
void setAz(float value) override
Definition: exmalifOpcUaImpl.hpp:168
std::unique_ptr<::exmalif::AxesPosition > cloneKey() const override
Definition: exmalifOpcUaImpl.hpp:187
size_t getDataValueCount() const override
Definition: exmalifOpcUaImpl.hpp:198
std::unique_ptr<::exmalif::LogInfo > cloneKey() const override
Definition: exmalifOpcUaImpl.hpp:266
std::shared_ptr<::elt::mal::rr::Ami< std::string > > GetPresetProgress()
Definition: exmalifOpcUaImpl.hpp:639
float getAz() const override
Definition: exmalifOpcUaImpl.hpp:164
void setDec(float value) override
Definition: exmalifOpcUaImpl.hpp:89
std::string Status() override
Definition: exmalifOpcUaImpl.hpp:609
const UA_DataValue * getOpcUaDataValues() const override
Definition: exmalifOpcUaImpl.hpp:286
void setAlt(float value) override
Definition: exmalifOpcUaImpl.hpp:160
bool hasKey() const override
Definition: exmalifOpcUaImpl.hpp:271
bool keyEquals(const ::exmalif::TelPosition &other) const override
Definition: exmalifOpcUaImpl.hpp:99
::elt::mal::future< std::string > Status() override
Definition: exmalifOpcUaImpl.hpp:424
Definition: exmalifOpcUaImpl.hpp:308
Definition: Exmalif.hpp:49
::elt::mal::future< std::string > Disable() override
Definition: exmalifOpcUaImpl.hpp:404
std::string Config() override
Definition: exmalifOpcUaImpl.hpp:614
std::unique_ptr<::exmalif::TelPosition > clone() const override
Definition: exmalifOpcUaImpl.hpp:95
std::unique_ptr<::exmalif::AxesPosition > clone() const override
Definition: exmalifOpcUaImpl.hpp:174
void setRa(float value) override
Definition: exmalifOpcUaImpl.hpp:81
void setOpcUaDataValues(const UA_DataValue *resultIterator) override
Definition: exmalifOpcUaImpl.hpp:281
::elt::mal::future< std::string > Init() override
Definition: exmalifOpcUaImpl.hpp:344
std::string Preset(const std::shared_ptr<::exmalif::TelPosition > &pos) override
Definition: exmalifOpcUaImpl.hpp:629
std::string Stop() override
Definition: exmalifOpcUaImpl.hpp:584
std::size_t keyHash() const
Definition: exmalifOpcUaImpl.hpp:261
void copy(const ::exmalif::TelPosition &from) override
Definition: exmalifOpcUaImpl.hpp:137
void setOpcUaDataValues(const UA_DataValue *resultIterator) override
Definition: exmalifOpcUaImpl.hpp:202
bool hasKey() const override
Definition: exmalifOpcUaImpl.hpp:192
std::string SetLogLevel(const std::shared_ptr<::exmalif::LogInfo > &info) override
Definition: exmalifOpcUaImpl.hpp:624
void setOpcUaDataValues(const UA_DataValue *resultIterator) override
Definition: exmalifOpcUaImpl.hpp:123
std::string Disable() override
Definition: exmalifOpcUaImpl.hpp:604
::elt::mal::rr::ListenerRegistration registerConnectionListener(::elt::mal::rr::ClientRrEntity::ConnectionListener listener) override
Definition: exmalifOpcUaImpl.hpp:648
std::shared_ptr<::elt::mal::rr::Ami< std::string > > GetPresetProgress()
Definition: exmalifOpcUaImpl.hpp:562
Definition: Exmalif.hpp:162
::elt::mal::future< std::string > Reset() override
Definition: exmalifOpcUaImpl.hpp:364
std::string Move(const std::shared_ptr<::exmalif::AxesPosition > &pos) override
Definition: exmalifOpcUaImpl.hpp:634
std::string Exit() override
Definition: exmalifOpcUaImpl.hpp:619
std::string getLevel() const override
Definition: exmalifOpcUaImpl.hpp:235
message AxesPosition
Definition: exmalif.proto:18
Definition: Exmalif.hpp:70
float getAlt() const override
Definition: exmalifOpcUaImpl.hpp:156
::elt::mal::future< std::string > SetLogLevel(const std::shared_ptr<::exmalif::LogInfo > &info) override
Definition: exmalifOpcUaImpl.hpp:484
package generated zpb exmalif
Definition: exmalif.proto:11
message LogInfo
Definition: exmalif.proto:23
size_t getDataValueCount() const override
Definition: exmalifOpcUaImpl.hpp:119
float getDec() const override
Definition: exmalifOpcUaImpl.hpp:85
void setLogger(const std::string &value) override
Definition: exmalifOpcUaImpl.hpp:247
void copy(const ::exmalif::LogInfo &from) override
Definition: exmalifOpcUaImpl.hpp:295
message TelPosition
Definition: exmalif.proto:13
const UA_DataValue * getOpcUaDataValues() const override
Definition: exmalifOpcUaImpl.hpp:128
::elt::mal::future< std::string > Preset(const std::shared_ptr<::exmalif::TelPosition > &pos) override
Definition: exmalifOpcUaImpl.hpp:510
StdCmdsSyncImpl(const ::elt::mal::Uri &uri, const std::vector< std::shared_ptr<::elt::mal::rr::qos::QoS >> &standardQoS, const ::elt::mal::Mal::Properties &malSpecificProperties, const std::shared_ptr<::elt::mal::OpcUaMal > &mal)
Definition: exmalifOpcUaImpl.hpp:573
Definition: exmalifOpcUaImpl.hpp:567
std::string Reset() override
Definition: exmalifOpcUaImpl.hpp:594
std::string Enable() override
Definition: exmalifOpcUaImpl.hpp:599
size_t getDataValueCount() const override
Definition: exmalifOpcUaImpl.hpp:277
bool hasKey() const override
Definition: exmalifOpcUaImpl.hpp:113
void copy(const ::exmalif::AxesPosition &from) override
Definition: exmalifOpcUaImpl.hpp:216
::elt::mal::future< void > asyncConnect() override
Definition: exmalifOpcUaImpl.hpp:643
Definition: exmalifOpcUaImpl.hpp:149
Definition: exmalifOpcUaImpl.hpp:228
::elt::mal::future< std::string > Exit() override
Definition: exmalifOpcUaImpl.hpp:464
float getRa() const override
Definition: exmalifOpcUaImpl.hpp:77
const UA_DataValue * getOpcUaDataValues() const override
Definition: exmalifOpcUaImpl.hpp:207
::elt::mal::future< std::string > Enable() override
Definition: exmalifOpcUaImpl.hpp:384
std::unique_ptr<::exmalif::TelPosition > cloneKey() const override
Definition: exmalifOpcUaImpl.hpp:108
Definition: Exmalif.hpp:168
bool keyEquals(const ::exmalif::LogInfo &other) const override
Definition: exmalifOpcUaImpl.hpp:257
StdCmdsAsyncImpl(const ::elt::mal::Uri &uri, const std::vector< std::shared_ptr<::elt::mal::rr::qos::QoS >> &standardQoS, const ::elt::mal::Mal::Properties &malSpecificProperties, const std::shared_ptr<::elt::mal::OpcUaMal > &mal)
Definition: exmalifOpcUaImpl.hpp:314
std::string getLogger() const override
Definition: exmalifOpcUaImpl.hpp:243
::elt::mal::future< std::string > Move(const std::shared_ptr<::exmalif::AxesPosition > &pos) override
Definition: exmalifOpcUaImpl.hpp:536