4. MAL Mappings

User’s Manual

Revision:

2.2

Status:

Released

Repository:

https://gitlab.eso.org/cii/srv/cii-srv

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

Document History

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

  1. Cosylab, MAL Design document, CSL-DOC-17-147260 v1.5

  2. Cosylab, ELT CII MAL Transfer document, CSL-DOC-18-168015, version 1.8

  3. Cosylab, Python MAL Bindings Design document, CSL-DOC-18-152412, version 1.3

  4. 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.