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:
- CDPEventListener - allows to listen to CDP object events (like CDP alarms set or cleared) and take immediate sequencer event-based actions on them
- 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
- 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
Blocks for processing data to/from CDP Logger:
- RangeScanner - allows to scan value ranges (like timestamp ranges) sequentially, not missing any value
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
Sequencer IO
The Sequencer IO blocks are event-based blocks that provide I/O access.
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.