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. Entities
      • 2.7.1. Array, Blob
        • 2.7.1.1. Python
        • 2.7.1.2. C++
    • 2.8. Appendix
      • 2.8.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. Includes and imports
      • 9.2.1. C++
      • 9.2.2. Python
    • 9.3. Introduction
      • 9.3.1. Logsink directory
      • 9.3.2. Loggers and Appenders
      • 9.3.3. Log Layouts
      • 9.3.4. Postmortem buffer
    • 9.4. Prerequisites
      • 9.4.1. WAF Modules
      • 9.4.2. Services
        • 9.4.2.1. Logging Services
      • 9.4.3. Includes/Imports
        • 9.4.3.1. Java
        • 9.4.3.2. C++
        • 9.4.3.3. Python
    • 9.5. Logging Library Usage
      • 9.5.1. CiiLogManager
      • 9.5.2. CiiLogMessageBuilder
      • 9.5.3. Logging Configuration
        • 9.5.3.1. Java
        • 9.5.3.2. C++
        • 9.5.3.3. Python
      • 9.5.4. Log Layouts
        • 9.5.4.1. Java
        • 9.5.4.2. C++
        • 9.5.4.3. Python
      • 9.5.5. Basic usage example with default configuration
        • 9.5.5.1. Java
        • 9.5.5.2. C++
        • 9.5.5.3. Python
      • 9.5.6. Basic usage example with custom configuration
        • 9.5.6.1. Java
        • 9.5.6.2. C++
        • 9.5.6.3. Python
      • 9.5.7. Adding optional information to log messages
        • 9.5.7.1. Java
        • 9.5.7.2. C++
        • 9.5.7.3. Python
      • 9.5.8. String formatting
        • 9.5.8.1. Compile-time validation
      • 9.5.9. Using the Postmortem Buffer
        • 9.5.9.1. Java
        • 9.5.9.2. C++
        • 9.5.9.3. Python
    • 9.6. Logging services configuration
      • 9.6.1. Filebeat
        • 9.6.1.1. Basic configuration example
        • 9.6.1.2. Directory structure
      • 9.6.2. Logstash
        • 9.6.2.1. Forwarding log events
        • 9.6.2.2. Persisting Log events
        • 9.6.2.3. Handling Log Events
        • 9.6.2.4. Configuring Logstash
        • 9.6.2.5. Using multiple pipelines
        • 9.6.2.6. Persistent queues
      • 9.6.3. Logging Services Statistics
        • 9.6.3.1. Filebeat Metrics HTTP Endpoint
        • 9.6.3.2. Logstash Monitoring APIs
    • 9.7. Logging User Tools
      • 9.7.1. logSend
      • 9.7.2. Log Viewer
      • 9.7.3. Log Viewer Widget (Qt)
        • 9.7.3.1. Main Window
        • 9.7.3.2. Filter and query controls
        • 9.7.3.3. Adding new local log file entry to logsink
      • 9.7.4. Logtrail
        • 9.7.4.1. Kibana index patterns
        • 9.7.4.2. Cross-cluster search
        • 9.7.4.3. Logtrail configuration
        • 9.7.4.4. Main Window
    • 9.8. Tracing
      • 9.8.1. Introduction
        • 9.8.1.1. Traces and Spans
      • 9.8.2. Tracing Library Usage
        • 9.8.2.1. Tracing request-reply communication
        • 9.8.2.2. Tracing publish-subscribe communication
        • 9.8.2.3. Includes/Imports
        • 9.8.2.4. Basic usage example
        • 9.8.2.5. Mal pub/sub and request/response tracing basic examples
        • 9.8.2.6. Context Propagation
      • 9.8.3. Tracing Services
        • 9.8.3.1. Jaeger Agent
        • 9.8.3.2. Jaeger Collector
        • 9.8.3.3. Jaeger Query
      • 9.8.4. Tracing GUI (Jaeger UI)
    • 9.9. CII Log Client API
      • 9.9.1. Java
        • 9.9.1.1. CiiLogManager
        • 9.9.1.2. CiiLogMessageBuilder
        • 9.9.1.3. CiiLayout
        • 9.9.1.4. CiiSimpleLayout
      • 9.9.2. C++
        • 9.9.2.1. CiiLogManager
        • 9.9.2.2. CiiLogMessageBuilder
        • 9.9.2.3. CiiLogConfigurator
        • 9.9.2.4. CiiLayout
        • 9.9.2.5. CiiSimpleLayout
      • 9.9.3. Python
        • 9.9.3.1. CiiLogManager
        • 9.9.3.2. CiiLogConfigurator
        • 9.9.3.3. CiiLogMessageBuilder
    • 9.10. CII Log Fields
  • 10. Alarm
    • 10.1. Overview
    • 10.2. Introduction
    • 10.3. Prerequisites
      • 10.3.1. Set-up
      • 10.3.2. Start-Stop
    • 10.4. Usage
      • 10.4.1. Write Alarm Definitions
        • 10.4.1.1. Format
        • 10.4.1.2. Alarm functions
      • 10.4.2. Inject Definitions
      • 10.4.3. Request a Reload
      • 10.4.4. Monitor Alarms
      • 10.4.5. Trigger Alarms
    • 10.5. Advanced Topics
      • 10.5.1. Administration
        • 10.5.1.1. Installation
        • 10.5.1.2. Auto-start
        • 10.5.1.3. Health Checks
        • 10.5.1.4. Log Configuration
        • 10.5.1.5. Logs
      • 10.5.2. Troubleshooting
      • 10.5.3. Modify CDB directly
        • 10.5.3.1. General Settings
        • 10.5.3.2. IASIOs
        • 10.5.3.3. Transfer Functions
        • 10.5.3.4. DASUs
        • 10.5.3.5. Supervisor
        • 10.5.3.6. Plugin
      • 10.5.4. Run IAS directly
  • 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. Java 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
  • »
  • Search


© Copyright 2021 ESO - European Southern Observatory.