CII
1.5.0-pre1
Contents:
1. Introduction
1.1. Scope
1.2. Overview
2. MAL API
2.1. Overview
2.2. Installation
2.3. Introduction
2.4. CiiFactory
2.4.1. Java
2.4.2. C++
2.4.3. Python
2.5. Publish-subscribe
2.5.1. Publisher
2.5.1.1. Java
2.5.1.2. C++
2.5.1.3. Python
2.5.2. Subscriber
2.5.2.1. Java
2.5.2.2. C++
2.5.2.3. Python
2.5.3. MrvSubscriber
2.5.3.1. Java
2.5.3.2. C++
2.5.3.3. Python
2.6. Request-response
2.6.1. Client
2.6.1.1. Java
2.6.1.2. C++
2.6.1.3. Python
2.6.2. Server
2.6.2.1. Java
2.6.2.2. C++
2.6.2.3. Python
2.7. Appendix
2.7.1. Building CII application with WAF
3. MAL ICD Generation
3.1. Overview
3.2. Installation
3.2.1. Prerequisites
3.3. Editing ICD file in Eclipse
3.4. ICD Building blocks
3.4.1. Package
3.4.2. Basic types
3.4.3. Constants
3.4.4. Enumeration (Enum)
3.4.5. Union
3.4.6. Structure (struct)
3.4.7. Interface and Exception
3.4.8. Arrays
3.5. ICD Generation
3.6. Topic and interface definition document
3.6.1. Subsystems
3.6.2. Messaging pattern
3.6.3. Publish subscribe topic
3.6.4. Service interface
4. MAL Mappings
4.1. Overview
4.2. Installation
4.3. C++
4.3.1. DDS
4.3.1.1. URIs
4.3.1.2. Mal Specific Properties
4.3.2. ZPB
4.3.2.1. URIs
4.3.2.2. Mal Specific Properties
4.3.3. OPC UA
4.3.3.1. URIs
4.3.3.2. Mal Specific Properties
4.3.3.3. Data Access
4.3.3.4. Logging
4.3.4. MUDPI
4.3.4.1. URIs
4.3.4.2. Mal Specific Properties
4.4. Java
4.4.1. DDS
4.4.1.1. Mal Specific Properties
4.4.2. ZPB
4.4.2.1. Mal Specific Properties
4.4.3. OPC UA
4.4.3.1. Mal Specific Properties
4.5. Python
5. MAL Python Mappings
5.1. Introduction
5.2. Prerequisites
5.3. Using Python MAL API
5.3.1. Importing top level Python module, obtaining CiiFactory reference
5.3.2. Loading and registering MAL mappings
5.3.3. Python MAL API relative time parameters (timeouts/durations)
5.3.4. Using Publisher-Subscriber interface
5.3.4.1. Using Subscriber/Publisher as a Context Manager
5.3.4.2. Constructing list of QoS parameters
5.3.4.3. Constructing Data Event filters
5.3.5. Using Request-Reply interface
5.3.5.1. Using Request-Reply client as Context Manager
5.3.5.2. Constructing list of QoS parameters
6. Configuration
6.1. Overview
6.2. Includes and imports
6.2.1. C++
6.2.2. Python
6.3. API Components
6.4. Creation of Documents
6.4.1. Parsing YAML source from input/output stream
6.4.1.1. C++
6.4.1.2. Python
6.4.2. Loading YAML source from file/URI
6.4.2.1. Search Path
6.4.3. Actual document loading
6.4.4. Building document programmatically
6.5. Access to YAML source tree of a document
6.6. Document instance interface
6.6.1. Accessing document instance interface
6.6.1.1. C++
6.6.1.2. Python
6.6.2. Iteration over document instances
6.6.2.1. C++
6.6.2.2. Python
6.7. Document Validation
6.7.1. C++
6.7.2. Python
6.8. Saving documents to YAML
6.8.1. C++
6.8.2. Python
6.9. Merging documents
6.9.1. C++
6.9.2. Python
6.10. Exceptions
6.11. YAML tags recognized by config-ng
6.11.1. cfg.include
6.11.2. cfg.type
6.11.3. cfg.typedef
6.11.4. cfg.optional, cfg.required
6.12. List of built-in data types
7. Online Database
7.1. Overview
7.2. Introduction
7.3. Prerequisites
7.3.1. WAF Modules
7.3.2. Services
7.3.2.1. Redis
7.3.2.2. Remote FS
7.3.2.3. Calculation Service
7.3.2.4. Configuration Service
7.3.3. Configuration
7.3.3.1. OLDB Client Configuration
7.3.3.2. Calculation Service Configuration
7.4. OLDB Library Usage
7.4.1. Includes/Imports
7.4.1.1. Java
7.4.1.2. C++
7.4.1.3. Python
7.4.1.4. Java
7.4.1.5. C++
7.4.1.6. Python
7.4.1.7. Basic Example
7.4.1.8. Subscribing Example
7.4.1.9. Advanced Example
7.5. Advanced Topics
7.5.1. OLDB Statistics
7.5.1.1. OLDB Client Statistics
7.5.1.2. Calculation Service Statistics
7.5.2. Disabling Writes to Data Points
7.5.3. Custom functions in Data Point Formulas
7.5.4. Manipulating Data Point Metadata
7.5.5. Data Point Configuration
7.5.6. External Redis Servers
7.5.7. Changing the Storage Location of the Data Point
7.6. OLDB API LIBRARY
7.6.1. CiiOldb
7.6.2. CiiOldbDataPoint
7.6.2.1. Data Point URI
7.6.2.2. Data Point Value
7.6.2.3. Metadata
7.7. OLDB CLI
7.7.1. Read operations
7.7.1.1. Standard Usage
7.7.1.2. Retrieving Value Formula and Quality Expression
7.7.1.3. Saving value to a File
7.7.2. Write operation
7.7.2.1. Standard Usage
7.7.2.2. Setting Quality and Timestamp
7.7.2.3. Setting Formula
7.7.2.4. Setting Quality Expression
7.7.2.5. Writing Value from a File
7.7.2.6. Writing Value directly from the formula.
7.7.3. Subscribe operations
7.7.3.1. Standard Usage
7.7.3.2. Output to Files
7.8. GUI
7.8.1. General
7.8.2. Configuration File
7.8.3. Functionality
7.8.3.1. Main Window
7.8.3.2. Menu
7.8.4. Hierarchy view
7.9. Data Point Value Type to Language Types Mapping
7.10. Default Metadata Instance Names
7.11. Metadata attribute constraints
7.12. OLDB API LISTING
7.12.1. CiiOldb
7.12.2. CiiOldbDataPoint
8. Error Handling
8.1. Overview
8.2. Introduction
8.2.1. Standard workflow
8.2.2. CII Exceptions
8.2.2.1. Error stack
8.2.2.2. Indexing Service
8.2.3. Conditions API
8.2.4. Serialization
8.3. Installation
8.3.1. Prerequisites and waf modules
8.4. Usage
8.4.1. Includes/Imports
8.4.1.1. Java
8.4.1.2. CPP
8.4.1.3. Python
8.4.1.4. QT
8.4.2. Creating an SVN repository
8.4.3. Creating the exceptions
8.4.3.1. Java
8.4.3.2. CPP
8.4.3.3. Python
8.4.4. Wrapping native exceptions
8.4.5. Search script
8.4.5.1. Configuring the script
8.4.5.2. Usage of the search script
8.4.6. Exceptions examples
8.4.6.1. Building an Error Stack
8.4.6.2. Throwing a CPP Exception with Extra Information
8.4.6.3. Exception Serialization from CPP to Java
8.4.7. Using the Condition API
8.5. Using the QT Error Dialog Widget
8.6. Indexing service
8.6.1. Configuring indexing service
8.6.2. Running the indexing service
8.6.3. Accessing the indexed data
8.7. API
8.7.1. CII Exception methods
8.7.2. CPP macros
8.7.3. Conditions API
8.7.3.1. Java
8.7.3.2. CPP
8.7.3.3. Python
8.8. Serialization code example
8.8.1. CPP serialization server code
8.8.2. Java serialization client code
9. Logging
9.1. Overview
9.2. Introduction
9.2.1. Logsink directory
9.2.2. Loggers and Appenders
9.2.3. Log Layouts
9.2.4. Postmortem buffer
9.3. Prerequisites
9.3.1. WAF Modules
9.3.2. Services
9.3.2.1. Logging Services
9.3.3. Includes/Imports
9.3.3.1. Java
9.3.3.2. C++
9.3.3.3. Python
9.4. Logging Library Usage
9.4.1. CiiLogManager
9.4.2. CiiLogMessageBuilder
9.4.3. Logging Configuration
9.4.3.1. Java
9.4.3.2. C++
9.4.3.3. Python
9.4.4. Log Layouts
9.4.4.1. Java
9.4.4.2. C++
9.4.4.3. Python
9.4.5. Basic usage example with default configuration
9.4.5.1. Java
9.4.5.2. C++
9.4.5.3. Python
9.4.6. Basic usage example with custom configuration
9.4.6.1. Java
9.4.6.2. C++
9.4.6.3. Python
9.4.7. Adding optional information to log messages
9.4.7.1. Java
9.4.7.2. C++
9.4.7.3. Python
9.4.8. String formatting
9.4.8.1. Compile-time validation
9.4.9. Using the Postmortem Buffer
9.4.9.1. Java
9.4.9.2. C++
9.4.9.3. Python
9.5. Logging services configuration
9.5.1. Filebeat
9.5.1.1. Basic configuration example
9.5.1.2. Directory structure
9.5.2. Logstash
9.5.2.1. Forwarding log events
9.5.2.2. Persisting Log events
9.5.2.3. Handling Log Events
9.5.2.4. Configuring Logstash
9.5.2.5. Using multiple pipelines
9.5.2.6. Persistent queues
9.5.3. Logging Services Statistics
9.5.3.1. Filebeat Metrics HTTP Endpoint
9.5.3.2. Logstash Monitoring APIs
9.6. Logging User Tools
9.6.1. logSend
9.6.2. Log Viewer
9.6.3. Log Viewer Widget (Qt)
9.6.3.1. Main Window
9.6.3.2. Filter and query controls
9.6.3.3. Adding new local log file entry to logsink
9.6.4. Logtrail
9.6.4.1. Kibana index patterns
9.6.4.2. Cross-cluster search
9.6.4.3. Logtrail configuration
9.6.4.4. Main Window
9.7. Tracing
9.7.1. Introduction
9.7.1.1. Traces and Spans
9.7.2. Tracing Library Usage
9.7.2.1. Tracing request-reply communication
9.7.2.2. Tracing publish-subscribe communication
9.7.2.3. Includes/Imports
9.7.2.4. Basic usage example
9.7.2.5. Mal pub/sub and request/response tracing basic examples
9.7.2.6. Context Propagation
9.7.3. Tracing Services
9.7.3.1. Jaeger Agent
9.7.3.2. Jaeger Collector
9.7.3.3. Jaeger Query
9.7.4. Tracing GUI (Jaeger UI)
9.8. CII Log Client API
9.8.1. Java
9.8.1.1. CiiLogManager
9.8.1.2. CiiLogMessageBuilder
9.8.1.3. CiiLayout
9.8.1.4. CiiSimpleLayout
9.8.2. C++
9.8.2.1. CiiLogManager
9.8.2.2. CiiLogMessageBuilder
9.8.2.3. CiiLogConfigurator
9.8.2.4. CiiLayout
9.8.2.5. CiiSimpleLayout
9.8.3. Python
9.8.3.1. CiiLogManager
9.8.3.2. CiiLogConfigurator
9.8.3.3. CiiLogMessageBuilder
9.9. CII Log Fields
10. Alarm
10.1. Overview
10.2. Introduction
10.3. Prerequisites
10.3.1. Required modules
10.3.2. Services
10.4. Alarm Usage Examples
10.4.1. Creating the Input Data Point
10.4.2. Configuring the Alarm Service
10.4.2.1. Definfing general settings
10.4.2.2. Defining IASIOs
10.4.2.3. Importing a Transfer Function
10.4.2.4. Defining DASUs
10.4.2.5. Defining the Supervisor
10.4.2.6. Defining the Plugin
10.4.3. Running the Alarm service
10.4.3.1. Alarm Services
10.4.3.2. Running Web Server and Display Service
10.4.3.3. Activating Alarms
10.4.3.4. Inspecting Acknowledging Shelving
10.5. Advanced
10.5.1. Creating an IAS User
10.5.2. Logging
11. Telemetry
11.1. Overview
11.2. Introduction
11.2.1. Telemetry OLDB Subscription
11.2.1.1. Data Packet
11.2.2. Telemetry Client API
11.2.2.1. Archive API
11.2.2.2. Service Management API
11.2.2.3. Telemetry CLI tools
11.3. Prerequisites
11.3.1. Services
11.3.1.1. Engineering Archive
11.3.1.2. Configuration Service
11.3.1.3. OLDB Service
11.4. Data Capture Configuration
11.4.1. Create Data Capture Configuration
11.4.2. Edit Data Capture Configuration
11.5. Telemetry Archiver API Usage
11.5.1. Basic Example
11.5.2. Archive API: storing, querying and downloading data
11.5.2.1. Imports/includes
11.5.2.2. Connection to Telemetry Archiver using MAL
11.5.2.3. Storing a data packet
11.5.2.4. Storing a list of data packets
11.5.2.5. Querying data packets
11.5.2.6. Downloading data packets
11.5.2.7. Data packet deserialization
11.5.2.8. Closing the MAL connection
11.5.3. Archive API: Big Data Storage
11.5.3.1. Imports/Includes
11.5.3.2. Creating the client instance
11.5.3.3. Writing data
11.5.3.4. Finding UUIDs of Archived Big Data Files
11.5.3.5. Reading data
11.5.3.6. Deleting files
11.5.4. Telemetry Archiver Management API
11.5.4.1. Imports/includes
11.5.4.2. Connection to Telemetry Archiver using MAL and closing the connection
11.5.4.3. Refreshing configurations
11.6. Telemetry CLI tools
11.6.1. CLI Manager
11.6.2. CLI Archiver
11.6.2.1. Storing data packets
11.6.2.2. Downloading data packets
11.6.2.3. Querying data packets
11.7. Telemetry Subscription
11.7.1. Data Capture Configuration Examples
11.7.1.1. Archive data point on absolute value change or quality change
11.7.1.2. Archive data point on relative value change or metadata change
11.7.1.3. Stop archiving the data point
11.7.2. OLDB Simulation
11.7.2.1. OLDB Mock
11.7.2.2. OLDB Simulator
11.8. Telemetry Archiver Deployment
11.8.1. Example
11.8.2. Systemd Deployment
11.8.3. Scaling Telemetry Archiver
11.8.4. Logging
11.9. Advanced Topics
11.9.1. Telemetry Archiver statistics
11.10. Archive API
11.10.1. Archive API: storing, querying and downloading data
11.10.2. Archive API: Big Data Storage
11.10.3. Telemetry Archiver Management API
11.11. Data Capture Configuration Options
11.12. Telemetry Archiver Configuration
11.13. Big Data Storage Examples
12. Service Management
12.1. Overview
12.2. Introduction
12.3. cii-postinstall
12.3.1. Roles
12.3.2. Subcommands
12.3.3. Other Functions
12.4. cii-services
12.4.1. Monitoring/Status Check
12.4.2. Start / Stop
12.5. Example
13. Internal Config System
13.1. Overview
13.2. Introduction
13.2.1. Classes
13.2.1.1. Configuration classes
13.2.1.2. Metadata classes
13.2.2. Instances
13.2.2.1. Metadata instances
13.2.2.2. Configuration instance
13.3. Prerequisites
13.3.1. Local DB initialization
13.3.2. Includes/Imports
13.3.2.1. Java imports
13.3.2.2. CPP Includes
13.3.2.3. Python imports
13.4. Basic usage
13.4.1. Example description
13.4.2. Creating a simple configuration using YAML definitions
13.4.2.1. Java client
13.4.2.2. CPP client
13.4.2.3. Python client
13.4.3. Creating a simple configuration using GUI
13.4.3.1. Creating a simple class in GUI
13.4.3.2. Creating a target configuration for simple class in GUI
13.4.3.3. Generating classes from the classes defined in GUI
13.4.4. CRUD operations
13.4.4.1. Java CRUD
13.4.4.2. CPP CRUD
13.4.4.3. Python CRUD
13.4.5. Using the cache operations
13.4.5.1. Java cache example
13.4.5.2. CPP Cache
13.4.5.3. Python cache example
13.5. Advanced usage
13.5.1. Custom metadata class
13.5.2. Using referenced classes
13.5.2.1.
J
ava referenced type
13.5.2.2. CPP referenced type
13.5.2.3. Python referenced type
13.5.3. Using check values
13.5.3.1. Java checked functions
13.5.3.2. CPP checked functions
13.5.3.3. Python checked functions
13.6. Additional information
13.6.1. Config tool
13.6.1.1. Class generation
13.6.1.2. Deployment and undeployment
13.6.2. Generic types
13.6.3. Java search example
13.6.4. Large data – binary files
13.6.5. Extending metadata classes with additional logic
13.6.6. Accessing statistics using the JMX
13.7. GUI
13.7.1. General
13.7.2. Configuration GUI settings
13.7.3. Main Window
13.7.3.1. Filtering the values
13.7.4. Menu
13.7.5. Target Config Tab
13.7.5.1. Selecting configuration
13.7.5.2. Adding new configuration entity
13.7.5.3. Setting configuration value
13.7.5.4. Setting metadata instance and version
13.7.5.5. Version management
13.7.6. Configuration class Tab
13.7.6.1. Selecting configuration class
13.7.6.2. Adding new configuration class entity
13.7.6.3. Adding member fields to the configuration class
13.7.6.4. Delete configuration class
13.7.7. Metadata Class Tab
13.7.7.1. Selecting metadata class
13.7.7.2. Adding new metadata class entity
13.7.7.3. Adding metadata class attribute
13.7.7.4. Delete metadata class
13.7.8. Metadata Instance Tab
13.7.8.1. Selecting metadata instance
13.7.8.2. Adding new metadata instance
13.7.9. Setting metadata instance value
13.7.9.1. Version management
13.7.10. Notify OLDB button
13.8. Config client API listing
13.8.1. Java API code
13.8.2. CPP API code
13.8.3. Python bindings code
13.9. Config point value type to language types mapping
13.10. Default metadata instance mapping
13.11. Class definition reserved words
13.12. JSON/YAML Schema
13.12.1. Configuration class schema
13.12.2. Metadata class schema
13.12.3. Configuration instance schema
13.12.4. Metadata instances schema
13.13. GUI configuration file
13.14. Configuration client settings
13.15. Configuration service settings
13.16. Code produced by the generators
CII
Docs
»
Index
Index