Framework - Sequencer
Sequencer
The Sequencer addon implements support for event-based computing as defined by IEC 61499 to better support building sequential or event based logic. Sequencer provides both no-code and code-based blocks to build such systems. The distributed aspects of IEC 61499 are less impactful as CDP is already inherently distributed also for regular cyclic computing and function blocks.
The Sequencer addon also supports building cyclic control blocks for use-cases where the use of events for control flow is not needed extending what the IEC 61499 mandates.
Sequencer help has the following help pages.
- Introduction to Sequencer.
- Basic Function Block usage manual.
- Composite Function Block usage manual.
- Service Function Block usage manual.
- C++ Class documentation of programmer APIs for Sequencer code usage.
In addition to the generic blocks, CDP has many more specific Sequencer blocks that help in creating different complex pipelines:
- DebugPrinter - for debugging the pipelines - by dumping any event received into the application output.
Sequencer Database
The Sequencer Database blocks are event-based blocks that provide access to databases.
- DBQuery Block - allows no-code SQLite database interactions
Sequencer DataHandling
The Sequencer DataHandling blocks are event-based blocks, that provide data manipulation functionality. The primary use-case of these blocks is to allow simpler building of cloud and edge applications.
Blocks for converting data to/from JavaScript Object Notation (JSON) format:
- JSONDecode - allows to decode simple JSON to output arguments
- JSONDecoder - allows to decode incoming event JSON argument to event(s) with decoded data
- JSONEncode - allows to encode values to simple JSON
- JSONEncoder - allows to encode event(s) data to output event consisting JSON-encoded data
- JSONQuery - allows to query a single value from JSON using JSON Pointer syntax
Blocks for converting data to/from Protocol Buffers (Protobuf) format:
- ProtobufDecode - allows to decode simple Protobuf to output arguments
- ProtobufDecoder - allows to decode incoming event Protobuf argument to event(s) with decoded data
- ProtobufEncode - allows to encode values to simple Protobuf
- ProtobufEncoder - allows to encode event(s) data to output event consisting Protobuf-encoded data
Blocks for manipulating series of data:
- Grouper - allows to collect events and output them reordered by some key
- SeriesMerger - allows to collect data from different input events and then output them merged via a single output event
- SeriesCompressor - allows to compress series of numeric data
- SeriesDecompressor - allows to decompress compressed series of numeric data
Sequencer Alarm Handling
The Sequencer Alarm System blocks are event-based blocks that provide access to CDPEventManager events like alarms:
- CDPEventListener - allows to listen to CDP object events (like CDP alarms set or cleared) and take immediate sequencer event-based actions on them
- ActiveAlarmCounter - allows to count active alarms in the system.
Sequencer Generic
Blocks for representing data in CDPNode structure:
- DataNodes Block - allows translating dynamic message event data into structured, navigable data format, such as tree or list
Blocks that help in creating different complex pipelines:
- RequestRetry - for creating a pipeline where a request (event or message) has to be responded and when not responded in time the same request has to be automatically retried
- RangeScanner - allows to scan value ranges (like timestamp ranges) sequentially, not missing any value
- MessageQueue - to queue incoming (In) events (i.e. messages with data) to be emitted to the output (Out) one-by-one, on Next event.
Sequencer IO
The Sequencer IO blocks are event-based blocks that provide I/O access.
- TextFileReader - allows to read contents line-by-line from a file.
- TextFileWriter - allows to write message line contents to any file.
- CSVFileReader - allows to compress series of numeric data
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.