4. MAL Mappings¶
User’s Manual
Revision: |
2.2 |
---|---|
Status: |
Released |
Repository: |
|
Project: |
ELT CII |
Folder: |
/trunk/deliverables/phase3 |
Document ID: |
CSL-MAN-18-155953 |
File: |
MAN-MAL_mappings.docx |
Owner: |
Matej Šekoranja, Cosylab Sweden |
Last modification: |
May 15, 2019 |
Created: |
July 21, 2018 |
Prepared by |
Reviewed by |
Approved by |
---|---|---|
Matej Šekoranja, CSL SWE |
Aljaž Podboršek Gregor Čuk |
Gregor Čuk |
Revision |
Date |
Changed/rev iewed |
Section(s) |
Modificatio n |
---|---|---|---|---|
0.1 |
2018-07-21 |
msekoranja |
All |
Created. |
0.9 |
2018-08-03 |
msekoranja |
3 |
Added Python sections, properties. |
1.0 |
2018-08-10 |
msekoranja |
All |
Minor updates, release. |
2.0 |
2019-02-02 |
msekoranja |
All |
Updated property names, removed duplicated parts from MAL API manual and Transfer document. |
2.1 |
2019-04-16 |
msekoranja |
3 References |
Updated OPC UA C++ properties. References update |
2.2 |
2020-03-24 |
msekoranja |
3 |
Added ZPB C++/Java send queue size property. |
2.2 |
2021-09-24 |
dkumar |
3 |
Added ZPB C++/Java disable type check property. |
Confidentiality
This document is classified as a confidential document. As such, it or parts thereof must not be made accessible to anyone not listed in the Audience section, neither in electronic nor in any other form.
Scope
This document is a Middleware Abstraction Layer user manual document for the ELT Core Integration Infrastructure Software project.
Audience
Users and Maintainers of the ELT Core Integration Infrastructure Software.
Glossary of Terms
API |
Application Programmers Interface |
---|---|
CII |
Core Integration Infrastructure |
DDS |
Data Distribution Service |
MAL |
Middleware Abstraction Layer |
URI |
Uniform Resource Identifier |
ZPB |
ZeroMQ and Protocol Buffers |
OPC UA |
OPC (Object Linking and Embedding for Process Control) Unified Architecture |
References
Cosylab, MAL Design document, CSL-DOC-17-147260 v1.5
Cosylab, ELT CII MAL Transfer document, CSL-DOC-18-168015, version 1.8
Cosylab, Python MAL Bindings Design document, CSL-DOC-18-152412, version 1.3
Cosylab, MAL API User Manual document, CSL-MAN-17-150198, version 2.1
4.1. Overview¶
This document describes configuration options for the following MAL mappings: DDS, ZPB and OPC UA. All the details on the MAL API and its functionality are covered by the MAL design document [1] and MAL User Manual [4].
4.2. Installation¶
See MAL Mappings Transfer document [2] on how to install MAL mappings.
4.3. C++¶
4.3.1. DDS¶
The following table enumerates mapping specific properties:
Name |
Type |
Description |
Used by |
Default |
---|---|---|---|---|
dds.domain |
integer |
DDS domain ID. |
MAL |
0 |
dds.qos.profile.library |
string |
DDS QoS profile library. |
MAL |
(none) |
dds.qos.profile.name |
string |
DDS QoS profile name. |
MAL |
(none) |
Table 1 C++ DDS MAL mapping specific properties
4.3.2. ZPB¶
The following table enumerates mapping specific properties:
Name |
Type |
Description |
Used by |
Default |
---|---|---|---|---|
zpb.ps.slow JoinerDelay Ms |
integer |
Slow joiner delay. Time in millisecond s to wait after publisher has been instantiate d. This mitigates slow joiner delay problem but does NOT guarantee that first N messages will not be lost. |
Publisher |
0 (no delay) |
zpb.schedul edExecutorT hreads |
integer |
Number of thread pool threads to handle internal timer based tasks (e.g. QoS deadline timeouts). |
MAL |
3 |
zpb.rr.call TimeoutSec (C++ only) |
integer |
Client asynchronou s method call timeout in seconds. |
Client |
0 (no timeout) |
zpb.ps.zmq. sndhwm |
integer |
Publisher send queue size. Use to limit memory usage when dealing with large messages. 0 stands for unlimited. |
Publisher |
1000 (ZMQ timeout) |
zpb.ps. disableType HashCheck |
boolean |
Disable subscriber’s check for type hash correctness |
Subscribers |
false |
zpb.rr. zmqReconnect IvlMs |
integer |
Set reconnection interval in ms |
Client |
100 ms |
zpb.rr. zmqReconnect IvlMaxMs |
integer |
Set maximum reconnection interval in ms |
Client |
0 ms |
Table 2 C++ ZPB MAL mapping specific properties
4.3.3. OPC UA¶
The following table enumerates mapping specific properties:
Name |
Type |
Description |
Used by |
Default |
---|---|---|---|---|
opc.asyncLo opExecution PeriodMs |
integer |
The sleep period of the asynchronou s process loop. |
MAL |
50 |
opc.asyncCa llSubmitTim eoutMs |
integer |
Timeout for submitting an asynchronou s call. |
Client |
1000 |
opc.asyncCa llRetryPeri odMs |
integer |
The retry period for failed asynchronou s calls. |
MAL |
250 |
opc.log4cpl us.filename |
string |
log4cplus file name. |
MAL |
undefined |
opc.ps.poll ingPeriodMs |
integer |
Multi-node subscriber polling period in millisecond s. |
Subscriber, MrvSubscrib er |
1000 |
opc.ps.outs tandingPubl ishRequests |
integer |
Number of outstanding publish requests. |
Publisher, Subscriber, MrvSubscrib er |
10 |
Table 3 C++ OPC UA MAL mapping specific properties
4.4. Java¶
4.4.1. DDS¶
For mapping specific properties refer to Table 1 C++ DDS MAL mapping specific properties.
4.4.2. ZPB¶
For mapping specific properties refer to Table 2 C++ ZPB MAL mapping specific properties.
4.4.3. OPC UA¶
The following table enumerates mapping specific properties:
Name |
Type |
Description |
Used by |
Default |
---|---|---|---|---|
opc.schedul edExecutorT hreads |
integer |
Number of thread pool threads to handle internal timer based tasks (e.g. QoS deadline timeouts). |
MAL |
3 |
opc.ps.poll ingPeriodMs |
integer |
Multi-node subscriber polling period in millisecond s. |
Subscriber, MrvSubscrib er |
1000 |
opc.ps.reqP ubRateMs |
integer |
OPC UA stack subscriptio n requested publishing interval in millisecond s. |
MAL |
1000 |
opc.ps.queu eSize |
integer |
OPC UA stack subscriptio n queue size. |
MAL |
3 |
Table 4 Java OPC UA MAL mapping specific properties
4.5. Python¶
Python MAL API builds on MAL C++ API foundation. There is no native Python MAL mapping implementation, everything is provided via language mapping to C++.
Python applications use Python MAL API only and are not aware of the actual MAL implementation details.
Refer to Python Bindings Design [3] and MAL API User Manual [4] documents for detailed information.