Common Tools & Definitions - C++ Utilities¶
The following C++ utilities are provided by the CTD Package:
“ifw-hl/core/ctd/cpp/defines”: Constant definitions of common nature. For instance, definitions of variable data types, used in the context of the ELT ICS (CII).
“ifw-hl/core/ctd/cpp/string”: Small tools to facilitate string manipulation.
“ifw-hl/core/ctd/cpp/conversion”: Tools to convert between various type representations.
“ifw-hl/core/ctd/cpp/system”: Contains small ‘system level’ tools, e.g. to for obtaining time stamps, obtaining information about the OS platform, generating unique IDs, generating random numbers, fail safe mutex semaphore, and more.
“ifw-hl/core/ctd/cpp/time”: Contains utilities to handle time related aspects, like generating ISO 8601 timestamps.
“ifw-hl/core/ctd/cpp/param”: Tools to handle parameters.
“ifw-hl/core/ctd/cpp/file”: Provides small tools for handling files, for instance a function to locate files in the ELT ICS directory structure. Also provides a parameter set class to handle parameter files, and a specialization for YAML.
The following, Python utilities are provided by the CTD Package:
“ifw-hl/core/ctd/python/packages/ctdUtils”: Various convenience functions, e.g. a function to locate files in the ICS directory structure.
“ifw-hl/core/ctd/python/packages/ctdOpcua”: Provides an SCXML driven/OPC UA server toolkit and an OPC UA client toolkit.
“ifw-hl/core/ctd/python/programs/opcuaClient”: OPC UA client command line tool to commnicate with OPC UA servers, mostly dedicated to interact with servers based on the CTD OPC UA Server toolkit.
“ifw-hl/core/ctd/python/packages/opcuaGenProfile”: Command line utility to generate OPC UA XML profile documents from a simple/compact (YAML based) format, listing the application namespace.
C++ Modules¶
Module: “ifw-hl/ctd/cpp/defines”¶
Namespace: “ctd::defines”.
Library: “ifwCtdDef”.
Header file: “ctd/defines/defines.hpp”.
Provides various basic definitions of constants and a few convenience functions.
Module: “ifw-hl/core/ctd/cpp/string”¶
Namespace: “ctd::string”.
Library: “ifwCtdString”.
Header file: “ctd/string/string.hpp”.
Provides small convenience tools for string manipulation.
Module: “ifw-hl/core/ctd/cpp/conversion”¶
Namespace: “ctd::conversion”.
Library: “ifwCtdConv”.
Header file: “ctd/conversion/conversion.hpp”.
Provides utilites to convert between different data types.
Module: “ifw-hl/core/ctd/cpp/system”¶
Namespace: “ctd::system”.
Library: “ifwCtdSys”.
Header file: “ctd/system/system.hpp”.
Provides various system level utilities (functions) and a scope based mutex semaphore class.
Doxygen documentation:
Module: “ifw-hl/core/ctd/cpp/time”¶
Namespace: “ctd::time”.
Library: “ifwCtdTime”.
Header file: “ctd/time/time.hpp”.
Provides small convenience functions for dealing with time aspects, e.g. generating ISO 8601 time stamps.
Doxygen documentation:
Module: “ifw-hl/core/ctd/cpp/param”¶
Namespace: “ctd::param”.
Library: “ifwCtdParam”.
Header files:
“ctd/param/Parameter.hpp”: Contains class to handle one parameter.
“ctd/param/ParameterSet.hpp”: Contains class to handle a set of parameter class instances.
Provides two classes for handling parameter files in a generic way.
Note: This module is under evaluation. During the porting of ICS to CII, it will be evaluated whether to keep this.
Module: “ifw-hl/core/ctd/cpp/file”¶
Namespace: “ctd::file”.
Library: “ifwCtdFile”.
Header files:
“ctd/file/file.hpp”: Defines various constants to be used in the context of the ICS directory structure. Moreover, various utilities to handle files and filenames, e.g. a tool for locating files in the ICS directory structure.
“ctd/file/ParameterFile.hpp”: Provides a class, “ParameterFile”, based on “ctd::param::ParameterSet” to handle parameter files in a simple ASCII format.
“ctd/file/Yaml.hpp”: Provides a class, based on “ctd::param::ParameterSet”, to handle YAML files in the ICS directory structure.
Note: It is under consideration to provide a class, which transparently can handle YAML and JSON files transparently. This will be assessed in connection with the porting to CII.