Cross-system triggers

Introduction

In openDAQ we are capable to connect functionblock with each other with any kind of signal.

However, if you have a large 1 to n topology this connection creating could be somehow annoying- particular if they are asynchronous signals. A good example is a trigger block which shall call a trigger input of another function block. For this also an event mechanism shall be implemented to simplify it.

Assumptions

It is possible to share also event across opendaq instances. We have defined event types.

The current event system does not support this feature.

Requirements

A function block or rather a proberty object can throw an event. The event will include the global id of the function block which throws it and has a command

Event type could be called trigger.

User story

I as a developer would like to write a function blocks which listen on certain global events. If an event happens I get notified.

Afterwards I can do a certain action.

User interaction

//propertyObject 1
propertyObject1.publishEvent(daq::TriggerEvent, "");
subscriberList.append("<globalId of property object>")
propertyObject.addEventCallback(daq::Trigger, &triggerCallback, subscriberList);
void triggerCallback()
{
  std::cout << triggered by another property object block << std::endl;
}

Who shall implement the Feature

openDAQ
Contribution

Status
Feature Planned on Roadmap
Feature Request is discussed in Working Group
Feature declined.