POETSII / Orchestrator

The Orchestrator is the configuration and run-time management system for POETS platforms.
1 stars 1 forks source link

Meaning of of SupervisorType/SupervisorInPin/@id #320

Open m8pple opened 2 years ago

m8pple commented 2 years ago

While trying to implement supervisors, there is an attribute Graphs/GraphType/SupervisorType/SupervisorInPin/@id, but it isn't clear what it is for.

On some examples it has a name, e.g.: https://github.com/POETSII/Orchestrator_examples/blob/81b2223b5cab07d917bb6d985cc1c558d37befc1/simple_tests/test_RequestIdle_behaviour.xml#L77 However, the id is never used elsewhere in the graph.

On other examples it is empty, e.g.: https://github.com/POETSII/Orchestrator_examples/blob/81b2223b5cab07d917bb6d985cc1c558d37befc1/mothership_diagnosis/test_ddos_supervisor.xml#L70

In Orch_Vol_II on page 19 it is not listed as as an attribute of SupervisorType/SupervisorInPin. On page 32 it does appear in the id="" form, but it is not mentioned (as far as I can tell).

In the grammar on page 53 of Orch_Vol_III it is shown as required, and the same in the V4Grammar3.ocfg grammar file

Is this a legacy thing, or for functionality that doesn't exist yet. I notice on page 38 of Orch_Vol_III it says:

For historical reasons, edge definitions where one or both device fields are blank are intended to represent supervisor connections

Apart from that it doesn't say anything I can see (though I'm scanning it quite quickly).

Looking at the orchestrator code, in composer it doesn't seem to care about the id (https://github.com/POETSII/Orchestrator/blob/ee9abedee184dc1d444f45cc2fb34997f99984d7/Source/OrchBase/Composer.cpp#L1738). There is mentioned of a general handler, but it isn't implemented (https://github.com/POETSII/Orchestrator/blob/ee9abedee184dc1d444f45cc2fb34997f99984d7/Source/OrchBase/Composer.cpp#L1765).

So questions arising are:

Going further, once there are multiple SupervisorInPin elements on a SupervisorType, how do we know which one is the implicit/default input pin?