Tips zum GSI-acquisition-context-field
- Das GSI-acqusition-context-field wird in den FESA-Development Guidelines 8.1.1 erlaeutert
- Das GSI-acquisition-context-field enthält Informationen zu dem entsprechendem
WhiteRabbit TimingEvent, die ansonsten bei einem Get dem Client nicht verfügbar wären (bei subscriptions schon).
- Das GSI-acquisition-context-field wird vom Framework lediglich angelegt (und ich glaube in dem GSI-Template wird schon die Referenz in der Acquisition-Property darauf gesetzt). Das Feld wird nie automatisch befüllt (geht ja auch gar nicht, weil das Framework nicht weiß, wo welche Acquisition Felder befüllt werden). Man muss das also immer selbst befüllen.
- Es gibt verschiedene Möglichkeiten, dass acquisition-context-item mit Daten zu versorgen. Man kann entweder in einer Custom
GetAction das item direkt befüllen, oder die Referenz auf das GSI-acquisition-context-field setzen. Wenn man mehrere Properties hat mit dem item, sollte man nicht dasselbe field benutzten, weil die Daten sonst möglicherweise inkorrekt sind (außer die beiden Properties werden immer im gleichen Kontext befüllt)
- Wenn der Kontext von einem WR-TimingEvent kommt, dann kann man die erste Methode von hier
https://www-acc.gsi.de/wiki/FESA/FESA700_CodeSnippets#Fill_the_GSI_45acquisition_45context_45field benutzen, um das field zu befüllen (was dann von dem item referenziert werden kann). Ansonsten muss man die Einträge, die man sinnvoll füllen kann, selbst füllen (zb wenn die RT-Action periodisch von einem Timer angestoßen wird).
- Zu klaeren: ob die zweite Methode ((*device)->acquisitionContext.insert( pEvt->getMultiplexingContext(), stamp );) auch ein WR-TimingEvent benötigt, und falls ja, wozu der eigene Timestamp gut ist
--
TobiasHabermann - 10 Jan 2020