Detailed Description

Processimage synchronisation via Modbus/TCP.

This device is derived from the signal based sDevice to read and write line levels via ethernet using the Modbus/TCP protocol; see also the Modbus Organization.
When configured as master, the mbDevice initiates commucation with a specified list of slaves in order to retrieve input line levels and to set output line levels. The latter are locally buffered and are propagated to the event-based interface inherited via the base class sDevice. When configured as slave, the mbDevice accepts connections from any Modbus master, will response to their request sand update the local line-level buffer accordingly.

Further dedatils on the configuration, incl. an example, are provided by the ModbusDevice user-reference

Technical details.

  • The mbDevice slave implements reading and writing bits/coils/registers/holding registers, incl. the multi-read/write variants; regardless which commads you use, they all refer to the one process image implicitly defined by the event configuration.
  • The mbDevice matser usees the commands read multiple bits and write multiple coils for process image synchonisation.
  • All network communication come with quite relaxed timeouts. Please let us know, if you require more strict timeout behaviour.
  • Network communication is currently implemented synchronous with the edge detection background task; this is restrictive and may be changed in future revisions.
  • Communication uses an additional line-level buffer; a better solution would be to share the line buffer with the sDevice; however, this is not supported by the current sDevice interface.
  • Programatic configuration is still incomplete.
  • The mbDevice compiles with MinGW/Windows, however, it was not properly tested in this configuration; please let us know, if you plan to use mbDevice in a Windows context.

Note: This device must be explicitely enabled in Makefile.plugin.

Definition at line 72 of file iop_modbus.h.

#include <iop_modbus.h>

Classes

struct  IoRange
 Modbus address ranges. More...
 

Public Member Functions

 mbDevice (void)
 Default constructor. More...
 
 mbDevice (const mbDevice &)
 Copy constructor (not implemented!) More...
 
virtual ~mbDevice (void)
 Explicit destructor. More...
 
virtual void Clear (void)
 Clear all configuration (implies Stop) More...
 
virtual void Compile (void)
 Compile to internal data-structures. More...
 
void AppendRemoteOutputs (int mbid, int mbaddr, int cnt, int fdaddr)
 Append remotely implemented outputs. More...
 
void AppendRemoteInputs (int mbid, int mbaddr, int cnt, int fdaddr)
 Append remotely implemented inputs. More...
 
void SlaveAddress (const std::string &rAddr)
 Set server address of this node. More...
 
virtual void Start (void)
 Activate the device. More...
 
virtual void Stop (void)
 Deactivate the device. More...
 
- Public Member Functions inherited from faudes::sDevice
 sDevice (void)
 Default constructor. More...
 
 sDevice (const sDevice &rOtherDevice)
 copy-constructor More...
 
virtual ~sDevice (void)
 Explicit destructor. More...
 
void InsInputEvent (const std::string &event)
 Insert event as input event. More...
 
void AppendTrigger (const std::string &event, const Trigger &trigger)
 Add a trigger condition. More...
 
void InsOutputEvent (const std::string &event)
 Insert event as output event. More...
 
void AppendAction (const std::string &event, const Action &action)
 Add an action. More...
 
int MaxBitAddress (void) const
 Report max bit address. More...
 
virtual void Reset (void)
 Clear dynamic data and restart device. More...
 
virtual void WriteOutput (Idx output)
 Run output command. More...
 
void WriteSignal (int bitaddr, bool value)
 Set output signal. More...
 
bool ReadSignal (int bitaddr)
 Get input signal. More...
 
virtual int CycleTime () const
 Report cycle time. More...
 
virtual void CycleTime (int cycleTime)
 Set cycle time. More...
 
- Public Member Functions inherited from faudes::vDevice
 vDevice (void)
 Default constructor. More...
 
virtual ~vDevice (void)
 Explicit destructor. More...
 
void Name (const std::string &rName)
 Set the device name. More...
 
const std::string & Name (void) const
 Get device name. More...
 
void Tolerance (Time::Type maxgap)
 Set tolerance for time synchonisation. More...
 
Time::Type Tolerance (void)
 Get tolerance. More...
 
virtual void TimeScale (unsigned int scale)
 Set timescale. More...
 
virtual int TimeScale (void)
 Get timescale. More...
 
virtual void Configure (Idx event, const AttributeDeviceEvent &attr)
 Insert/edit input or output configuration. More...
 
virtual void Configure (const EventSet &rPhysicalEvents)
 Configure by alphabet. More...
 
virtual const EventSetOutputs (void) const
 Get outputs as plain set. More...
 
virtual const EventSetInputs (void) const
 Get inputs as plain set. More...
 
virtual bool ResetRequest (void)
 A device may ask for a reset by returning true for ResetRequest(). More...
 
virtual DeviceState Status (void)
 Get status. More...
 
virtual std::string StatusString (void)
 Get status as infromal string. More...
 
virtual void FlushOutputs (void)
 Flush pending IO Operations. More...
 
virtual Idx ReadInput (void)
 Read sensed input events. More...
 
virtual Idx PeekInput (void)
 Peek for sensed events. More...
 
virtual bool InputReady (void)
 Report whether a input-event is ready. More...
 
virtual bool WaitInputs (Time::Type duration)
 Wait for input trigger. More...
 
virtual bool WaitInputsMs (long int duration)
 Wait for input trigger. More...
 
virtual Time::Type CurrentTime (void)
 Report physical time in ftu. More...
 
virtual long int CurrentTimeMs (void)
 Report physical time in ms. More...
 
virtual void CurrentTime (Time::Type now)
 Set physical time in ftu. More...
 
virtual void CurrentTimeMs (long int nowms)
 Set physical time in ms. More...
 
virtual faudes_systime_t FtuToSystemTime (Time::Type duration)
 Convert faudes time unit duration to system time. More...
 
void UseCondition (faudes_mutex_t *wmutex, faudes_cond_t *wcond)
 Tell the device which condition to use for waiting. More...
 
void UseBuffer (faudes_mutex_t *bmutex, std::deque< Idx > *bbuffer)
 Tell the device which buffer to use for inputs. More...
 
virtual std::string EStr (Idx ev)
 Convenience method. More...
 
SampledDensityFunction Performance (void)
 Get performance (need compiletime option) More...
 
void ResetPerformance (void)
 Clear performance (need compiletime option) More...
 
void WritePerformance (void)
 Convenience method. More...
 
- Public Member Functions inherited from faudes::Type
 Type (void)
 Constructor. More...
 
 Type (const Type &rType)
 Copy constructor. More...
 
virtual ~Type (void)
 Destructor. More...
 
virtual TypeNew (void) const
 Construct on heap. More...
 
virtual TypeCopy (void) const
 Construct on heap. More...
 
virtual const TypeCast (const Type *pOther) const
 Cast other object to this type. More...
 
virtual TypeAssign (const Type &rSrc)
 Assign configuration data from other object. More...
 
virtual Typeoperator= (const Type &rSrc)
 Assign configurationdata from other object. More...
 
virtual bool Equal (const Type &rOther) const
 Test equality of configuration data. More...
 
virtual bool operator== (const Type &rOther) const
 Test equality of configuration data. More...
 
virtual bool operator!= (const Type &rOther) const
 Test equality of configuration data. More...
 
virtual const std::string & TypeName (void) const
 Get objects's type name. More...
 
void Write (const Type *pContext=0) const
 Write configuration data to console. More...
 
void Write (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0, std::ios::openmode openmode=std::ios::out|std::ios::trunc) const
 Write configuration data to a file. More...
 
void Write (const std::string &pFileName, std::ios::openmode openmode) const
 Write configuration data to a file. More...
 
void Write (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to TokenWriter. More...
 
virtual void XWrite (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to an XML file. More...
 
void XWrite (const Type *pContext=0) const
 Write configuration data in XML format to concole Note: this write function uses the virtual function DoXWrite(), to be reimplemented by derived classes. More...
 
void XWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data in XML format to TokenWriter. More...
 
std::string ToString (const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to a string. More...
 
std::string ToText (const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to a formated string. More...
 
void DWrite (const Type *pContext=0) const
 Write configuration data to console, debugging format. More...
 
void DWrite (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0, std::ios::openmode openmode=std::ios::out|std::ios::trunc) const
 Write configuration data to a file, debugging format. More...
 
void DWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data in debug format to TokenWriter. More...
 
void SWrite (TokenWriter &rTw) const
 Write statistics comment to TokenWriter. More...
 
void SWrite (void) const
 Write statistics comment to console. More...
 
std::string ToSText (void) const
 Write statistics to a string. More...
 
void Read (const std::string &rFileName, const std::string &rLabel="", const Type *pContext=0)
 Read configuration data from file with label specified. More...
 
void FromString (const std::string &rString, const std::string &rLabel="", const Type *pContext=0)
 Read configuration data from a string. More...
 
void Read (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0)
 Read configuration data from TokenReader with label sepcified. More...
 

Protected Member Functions

virtual bool DoReadSignalsPre (void)
 IO Hook, inputs. More...
 
virtual void DoReadSignalsPost (void)
 IO Hook, inputs. More...
 
virtual bool DoReadSignal (int bitaddr)
 Get input signal. More...
 
virtual bool DoWriteSignalsPre (void)
 IO Hook, outputs. More...
 
virtual void DoWriteSignalsPost (void)
 IO Hook, outputs. More...
 
virtual void DoWriteSignal (int bitaddr, bool value)
 Set output signal. More...
 
virtual void DoLoopCallback (void)
 Loop hook. More...
 
void DoReadPreface (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0)
 Read non-event-related configuration data from tokenreader. More...
 
void DoWritePreface (TokenWriter &rTw, const std::string &rLabel, const Type *pContext) const
 Write non-event-related configuration data to tokenreader. More...
 
int MbFlushBuffers (void)
 I/O helper. More...
 
int MbSendRequest (int id)
 
int MbReceiveResponse (void)
 
int MbReceiveRequest (int mastersock)
 
int MbSendResponse (int mastersock)
 
- Protected Member Functions inherited from faudes::sDevice
void DoWritePreface (TokenWriter &rTw, const std::string &rLabel, const Type *pContext=0) const
 Writes non-event-related configuration to TokenWriter. More...
 
- Protected Member Functions inherited from faudes::vDevice
virtual void DoWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Token output, see Type::Write for public wrappers. More...
 
virtual void DoWriteConfiguration (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Writes event-configuration to TokenWriter. More...
 
virtual void DoRead (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0)
 Token input, see Type::DRead for public wrappers. More...
 
virtual void DoReadConfiguration (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0)
 Reads event-configuration data from TokenReader. More...
 
virtual long int FtuToMs (Time::Type faudes_time)
 convert duration from fauDES-time units to ms More...
 
virtual Time::Type MsToFtu (long int real_time)
 convert duration in ms to faudes-time units More...
 
- Protected Member Functions inherited from faudes::Type
void DoAssign (const Type &rSrc)
 Assign configuration data from other object. More...
 
bool DoEqual (const Type &rOther) const
 Test equality of configuration data. More...
 
virtual void DoXWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data of this object to TokenWriter in XML format. More...
 
virtual void DoDWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data in debugging format to TokenWriter. More...
 
virtual void DoSWrite (TokenWriter &rTw) const
 Write statistical data as a comment to TokenWriter. More...
 
virtual const TypeDefinitionTypeDefinitionp (void) const
 Get objects's type definition. More...
 
virtual Token XBeginTag (const std::string &rLabel="", const std::string &rFallbackLabel="") const
 

Protected Attributes

bool mMasterRole
 Role: master/slave. More...
 
SimplenetAddress mSlaveAddress
 IP addresses. More...
 
std::vector< IoRangemSlaveIoRanges
 
int mImageSize
 Remote process image buffer. More...
 
char * mpImage
 
char * pInputImage
 
char * pOutputImage
 
char * mpOutputMask
 
int mSlaveSocket
 Background thread: tcp connection to remote slave. More...
 
int mRequestCount
 
char * mMessage
 
int mMessageLen
 
int mRequestId
 
std::vector< int > mMasterSockets
 Background thread: tcp connection to remote masters. More...
 
- Protected Attributes inherited from faudes::sDevice
TaNameSet< AttributeSignalEvent > * pConfiguration
 Overall configuration (with actual type) More...
 
std::map< int, EventSetmInputPosEdgeIndexMap
 Reverse input map: map signal edges to logical event sets. More...
 
std::map< int, EventSetmInputNegEdgeIndexMap
 Reverse input map: map signal edges to logical event sets. More...
 
std::map< int, EventSetmOutputLevelIndexMap
 Reverse output map: map signal addres to events that affect the resp. More...
 
int mMaxBitAddress
 Address range. More...
 
faudes_mutex_t mMutex
 Background: mutex for below shared variables. More...
 
bool mSyncWrite
 True for synchronous output writes. More...
 
- Protected Attributes inherited from faudes::vDevice
std::string mDefaultLabel
 Default label for token io. More...
 
std::string mName
 Name. More...
 
EventSetmpConfiguration
 Overall event configuration (uses cast for type) More...
 
EventSet mInputs
 All inputs. More...
 
EventSet mOutputs
 All outputs. More...
 
DeviceState mState
 Status: running, starting etc. More...
 
faudes_mutex_t mWaitMutex
 Default Wait Condition Mutex. More...
 
faudes_cond_t mWaitCondition
 Default Wait Condition. More...
 
faudes_mutex_t * pWaitMutex
 Actual Wait Condition Mutex. More...
 
faudes_cond_t * pWaitCondition
 Actual Wait Condition. More...
 
faudes_systime_t mTimeZero
 physical timepoint zero
More...
 
int mTimeScale
 FauDES-time: scaling factor in ms/ftu. More...
 
Time::Type mMaxSyncGap
 Toleance for time sync. More...
 
std::deque< IdxmInputBuffer
 Default Fifo buffer for input readings. More...
 
std::deque< Idx > * pInputBuffer
 Actual Fifo buffer for input readings. More...
 
faudes_mutex_t mBufferMutex
 Default mutex for input buffer (mutexted) More...
 
faudes_mutex_t * pBufferMutex
 Actual mutex for input buffer (mutexted) More...
 
bool mResetRequest
 Reset request marker (mutexed) More...
 
faudes_systime_t * mpPerformanceWaitEnter
 Structures to store time-samples in. More...
 
faudes_systime_t * mpPerformanceWaitExit
 
int mPerformanceEndIterator
 Global iterator. More...
 
int mPerformanceBeginIterator
 

Additional Inherited Members

- Public Types inherited from faudes::sDevice
typedef AttributeSignalInput::Trigger Trigger
 
typedef AttributeSignalOutput::Action Action
 
typedef AttributeSignalOutput::Value Value
 
- Public Types inherited from faudes::vDevice
enum  DeviceState { Down , StartUp , Up , ShutDown }
 Enum for device stages. More...
 
- Static Public Member Functions inherited from faudes::vDevice
static vDeviceFromTokenReader (TokenReader &rTr)
 Construct on heap from token reader. More...
 
static vDeviceFromFile (const std::string &rFileName)
 Construct on heap from file. More...
 
static void StopAll (void)
 Stop all devices. More...
 

Constructor & Destructor Documentation

◆ mbDevice() [1/2]

faudes::mbDevice::mbDevice ( void  )

Default constructor.

Definition at line 43 of file iop_modbus.cpp.

◆ mbDevice() [2/2]

faudes::mbDevice::mbDevice ( const mbDevice )
inline

Copy constructor (not implemented!)

Definition at line 86 of file iop_modbus.h.

◆ ~mbDevice()

faudes::mbDevice::~mbDevice ( void  )
virtual

Explicit destructor.

Definition at line 61 of file iop_modbus.cpp.

Member Function Documentation

◆ AppendRemoteInputs()

void faudes::mbDevice::AppendRemoteInputs ( int  mbid,
int  mbaddr,
int  cnt,
int  fdaddr 
)

Append remotely implemented inputs.

You must (re-)compile the mbDevice after adding remote inputs.

Parameters
mbidRemote device id
mbaddrbitaddress within the remote device
cntnumber of input bits to bw read
fdaddraddress within local process image

Definition at line 135 of file iop_modbus.cpp.

◆ AppendRemoteOutputs()

void faudes::mbDevice::AppendRemoteOutputs ( int  mbid,
int  mbaddr,
int  cnt,
int  fdaddr 
)

Append remotely implemented outputs.

You must (re-)compile the mbDevice after adding remote outputs.

Parameters
mbidRemote device id
mbaddrbitaddress within the remote device
cntnumber of output bits to bw written
fdaddraddress within local process image

Definition at line 146 of file iop_modbus.cpp.

◆ Clear()

void faudes::mbDevice::Clear ( void  )
virtual

Clear all configuration (implies Stop)

Reimplemented from faudes::sDevice.

Definition at line 73 of file iop_modbus.cpp.

◆ Compile()

void faudes::mbDevice::Compile ( void  )
virtual

Compile to internal data-structures.

Exception in misconfiguration/inconsistencies

Reimplemented from faudes::sDevice.

Definition at line 84 of file iop_modbus.cpp.

◆ DoLoopCallback()

void faudes::mbDevice::DoLoopCallback ( void  )
protectedvirtual

Loop hook.

This function is called once during each cycle of the backgroud thread. It implements the actual communication via Modbus/TCP.

Reimplemented from faudes::sDevice.

Definition at line 480 of file iop_modbus.cpp.

◆ DoReadPreface()

void faudes::mbDevice::DoReadPreface ( TokenReader rTr,
const std::string &  rLabel = "",
const Type pContext = 0 
)
protectedvirtual

Read non-event-related configuration data from tokenreader.

Parameters
rTrTokenReader to read from
rLabelSection to read
pContextRead context to provide contextual information

Reimplemented from faudes::sDevice.

Definition at line 202 of file iop_modbus.cpp.

◆ DoReadSignal()

bool faudes::mbDevice::DoReadSignal ( int  bitaddr)
protectedvirtual

Get input signal.

Extract bit value from image.

Parameters
bitaddrAbstract bit address
Returns
True for logic level high;

Implements faudes::sDevice.

Definition at line 926 of file iop_modbus.cpp.

◆ DoReadSignalsPost()

void faudes::mbDevice::DoReadSignalsPost ( void  )
protectedvirtual

IO Hook, inputs.

Reimplemented from faudes::sDevice.

Definition at line 921 of file iop_modbus.cpp.

◆ DoReadSignalsPre()

bool faudes::mbDevice::DoReadSignalsPre ( void  )
protectedvirtual

IO Hook, inputs.

Returns
True on success.

Reimplemented from faudes::sDevice.

Definition at line 915 of file iop_modbus.cpp.

◆ DoWritePreface()

void faudes::mbDevice::DoWritePreface ( TokenWriter rTw,
const std::string &  rLabel,
const Type pContext 
) const
protectedvirtual

Write non-event-related configuration data to tokenreader.

Parameters
rTwTokenWriter to write
rLabelSection to write
pContextContext to provide contextual information

Reimplemented from faudes::vDevice.

Definition at line 163 of file iop_modbus.cpp.

◆ DoWriteSignal()

void faudes::mbDevice::DoWriteSignal ( int  bitaddr,
bool  value 
)
protectedvirtual

Set output signal.

Set value of bit in process image.

Parameters
bitaddrAbstract bit address
valueTrue for logic level high;

Implements faudes::sDevice.

Definition at line 942 of file iop_modbus.cpp.

◆ DoWriteSignalsPost()

void faudes::mbDevice::DoWriteSignalsPost ( void  )
protectedvirtual

IO Hook, outputs.

Reimplemented from faudes::sDevice.

Definition at line 937 of file iop_modbus.cpp.

◆ DoWriteSignalsPre()

bool faudes::mbDevice::DoWriteSignalsPre ( void  )
protectedvirtual

IO Hook, outputs.

Returns
True on success

Reimplemented from faudes::sDevice.

Definition at line 932 of file iop_modbus.cpp.

◆ MbFlushBuffers()

int faudes::mbDevice::MbFlushBuffers ( void  )
protected

I/O helper.

Definition at line 372 of file iop_modbus.cpp.

◆ MbReceiveRequest()

int faudes::mbDevice::MbReceiveRequest ( int  mastersock)
protected

Definition at line 448 of file iop_modbus.cpp.

◆ MbReceiveResponse()

int faudes::mbDevice::MbReceiveResponse ( void  )
protected

Definition at line 419 of file iop_modbus.cpp.

◆ MbSendRequest()

int faudes::mbDevice::MbSendRequest ( int  id)
protected

Definition at line 396 of file iop_modbus.cpp.

◆ MbSendResponse()

int faudes::mbDevice::MbSendResponse ( int  mastersock)
protected

Definition at line 464 of file iop_modbus.cpp.

◆ SlaveAddress()

void faudes::mbDevice::SlaveAddress ( const std::string &  rAddr)

Set server address of this node.

Note: you can only set th server address while the device is down.

Parameters
rAddrIP address of the remote Modbus device, e.g. "localhost:1502"
Exceptions
Exception
  • No valid address (id 551) (NOT IMPLEMENTED)

Definition at line 157 of file iop_modbus.cpp.

◆ Start()

void faudes::mbDevice::Start ( void  )
virtual

Activate the device.

This function opens/initializes a network connection and starts the -background thread for communication and edge detection.

Exceptions
Exception
  • not yet configured (id not configured)
  • failed to network connection (id not configured)

Reimplemented from faudes::sDevice.

Definition at line 292 of file iop_modbus.cpp.

◆ Stop()

void faudes::mbDevice::Stop ( void  )
virtual

Deactivate the device.

This function shuts down the network, stops the background thread and sets all output signals to 0.

Reimplemented from faudes::sDevice.

Definition at line 337 of file iop_modbus.cpp.

Member Data Documentation

◆ mImageSize

int faudes::mbDevice::mImageSize
protected

Remote process image buffer.

Definition at line 286 of file iop_modbus.h.

◆ mMasterRole

bool faudes::mbDevice::mMasterRole
protected

Role: master/slave.

Definition at line 270 of file iop_modbus.h.

◆ mMasterSockets

std::vector<int> faudes::mbDevice::mMasterSockets
protected

Background thread: tcp connection to remote masters.

Definition at line 300 of file iop_modbus.h.

◆ mMessage

char* faudes::mbDevice::mMessage
protected

Definition at line 295 of file iop_modbus.h.

◆ mMessageLen

int faudes::mbDevice::mMessageLen
protected

Definition at line 296 of file iop_modbus.h.

◆ mpImage

char* faudes::mbDevice::mpImage
protected

Definition at line 287 of file iop_modbus.h.

◆ mpOutputMask

char* faudes::mbDevice::mpOutputMask
protected

Definition at line 290 of file iop_modbus.h.

◆ mRequestCount

int faudes::mbDevice::mRequestCount
protected

Definition at line 294 of file iop_modbus.h.

◆ mRequestId

int faudes::mbDevice::mRequestId
protected

Definition at line 297 of file iop_modbus.h.

◆ mSlaveAddress

SimplenetAddress faudes::mbDevice::mSlaveAddress
protected

IP addresses.

Definition at line 273 of file iop_modbus.h.

◆ mSlaveIoRanges

std::vector< IoRange > faudes::mbDevice::mSlaveIoRanges
protected

Definition at line 283 of file iop_modbus.h.

◆ mSlaveSocket

int faudes::mbDevice::mSlaveSocket
protected

Background thread: tcp connection to remote slave.

Definition at line 293 of file iop_modbus.h.

◆ pInputImage

char* faudes::mbDevice::pInputImage
protected

Definition at line 288 of file iop_modbus.h.

◆ pOutputImage

char* faudes::mbDevice::pOutputImage
protected

Definition at line 289 of file iop_modbus.h.


The documentation for this class was generated from the following files:

libFAUDES 2.32b --- 2024.03.01 --- c++ api documentaion by doxygen