Skip to content

ukaea/MARTe2-components

Repository files navigation

MARTe2-components

The MARTe2-components repository offers a set of components that are deemed useful to the community.

These include general purpose GAMs, support to off-the-shelf hardware and interfaces to known supervisory control and data acquisition systems.

GAMs

Component Documentation
BaseLib2GAM Encapsulate and execute GAMs from BaseLib2 in MARTe2
ConversionGAM GAM which allows to convert between different signal types
ConstantGAM Generate constant values that can be updated with messages.
DoubleHandshakeGAM Implements a master/slave double handshaking GAM.
FilterGAM GAM which allows to implement FIR & IIR filter with float32 type
HistogramGAM Compute histograms from the input signal values.
Interleaved2FlatGAM Allows to translate an interleaved memory region into a flat memory area (and vice-versa)..
IOGAM GAM which copies its inputs to its outputs. Allows to plug different DataSources (e.g. driver with a DDB).
FlattenedStructIOGAM An IOGAM that flattens (and copies) an input signal with arrays of structures into arrays of basic types.
MathExpressionGAM GAM that allows to compute math expressions in real-time.
MessageGAM Triggers MARTe::Message events on the basis of commands received in the input signals.
MuxGAM Multiplexer GAM that allows multiplex different signals.
PIDGAM A generic PID with saturation and anti-windup.
SimulinkWrapperGAM GAM that loads and runs Simulink(r) models.
SSMGAM A generic State Space model with constant matrices and float64.
StatisticsGAM GAM which provides average, standard deviation, minimum and maximum of its input signal over a moving time window.
TimeCorrectionGAM GAM which allows to estimate the next time-stamp value in a continuous time stream.
TriggeredIOGAM An IOGAM whose copy is conditional to the value of a Trigger signal.
WaveformGAM GAM which provides average, standard deviation, minimum and maximum of its input signal over a moving time window.

DataSources

Component Documentation
DAN Allows to store signals in an ITER DAN database.
EPICSCAInput Retrieve data from any number of PVs using the EPICS channel access client protocol.
EPICSCAOutput Output data into any number of PVs using the EPICS channel access client protocol.
EPICSPVAInput Retrieve data from any number of PVA records using the EPICS PVA client protocol.
EPICSPVAOutput Output data into any number of PVA records using the EPICS PVA client protocol.
FileReader Read signals from a file using different formats.
FileWriter Write signals to a file using different formats.
LinuxTimer Generic timing data source.
LinkDataSource Read/write signals from/to a MemoryGate.
LoggerDataSource Prints in the MARTe logger the current value of any signal.
MDSReader Allows to read data from an MDSplus tree.
MDSWriter Allows to write data into an MDSplus tree.
NI1588TimeStamp Circular buffer time stamp acquisition using the NI-1588 PCI-Express board.
NI6259ADC Provides an input interface to the NI6259 board.
NI6259DAC Provides an analogue output interface to the NI6259 board.
NI6259DIO Provides a digital input/output interface to the NI6259 board.
NI6368ADC Provides an input interface to the NI6368 board.
NI6368DAC Provides an analogue output interface to the NI6368 board.
NI6368DIO Provides a digital input/output interface to the NI6368 board.
NI9157CircularFifoReader Circular buffer acquisition from an NI-9157 FIFO.
NI9157MxiDataSource NI9157 MXI interface implementation.
OPCUADSInput Retrieve data from any number of Node Variables from an OPCUA Server. See the Data Source README for information on how to install.
OPCUADSOutput Retrieve data from any number of Node Variables from an OPCUA Server.
RealTimeThreadAsyncBridge Enables the asynchronous sharing of signals between multiple real-time threads.
RealTimeThreadSynchronisation Enables the synchronisation of multiple real-time threads.
SDNSubscriber Receive signals transported over the ITER SDN.
SDNPublisher Publish signals transported over the ITER SDN.
UARTDataSource Receive signals transported over UART.
UDPReceiver Receive signals transported over UDP.
UDPSender Transmit signals transported over UDP.

Interfaces

Component Documentation
BaseLib2Wrapper Load BaseLib2 objects into a BaseLib2 GlobalObjectDatabase.
EPICSCAClient Trigger Messages as a response to an EPICS PV value change.
EPICSPVA Library of EPICSPVA based components that allow to implement PVA record databases and PVA RPC interfaces to MARTe.
MemoryGate Allows asynchronous communication between any MARTe components.
OPCUA Library of OPCUA based components that allow to deploy MARTe hosted OPCUA servers. See the Data Source README for information on how to install.
SysLogger LoggerConsumerI which outputs the log messages to a syslog.

Other information

More information about the MARTe software framework can be found in:

How to build components and run tests

Commands:

$ export MARTe2_DIR=<marte2_dir>
$ export LD_LIBRARY_PATH=$MARTe2_DIR/Build/linux/Core/
$ make -f Makefile.linux
$ Build/linux/GTest/MainGTest.ex

Paths:

  • marte2_dir is the root directory of MARTe2 project's source code.

Note: The directory marte2_dir can be a snapshot of the project or a clone of the repository itself, so it can be switched to any branch or commit.

License

Copyright 2015 F4E | European Joint Undertaking for ITER and the Development of Fusion Energy ('Fusion for Energy'). Licensed under the EUPL, Version 1.1 or - as soon they will be approved by the European Commission - subsequent versions of the EUPL (the "Licence"). You may not use this work except in compliance with the Licence. You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl

Unless required by applicable law or agreed to in writing, software distributed under the Licence is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Licence permissions and limitations under the Licence.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages