Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

RSOFEI - POSSIG-Signal (Ereignis) anfordern

&pagelevel(3)&pagelevel

Allgemeines

Anwendungsgebiet:

(optimierte) Ereignissteuerung; siehe "Ereignisgesteuerte Verarbeitung (Eventing)"

Makrotyp:

R-Typ;

siehe "R-Typ-Makroaufrufe"


Forward Eventing (FEV) ist eine optimierte Form der synchronen Ereignissteuerung (synchrones Eventing). FEV vermeidet für wiederholte SOLSIG- bzw. POSSIG-Aufrufe in einem Programm die wiederholte Validierung der angegebenen Operanden. Stattdessen wird eine Ereignisliste EVENTLST angelegt und z.B. für Signalanforderungen von einer Ereigniskennung (SOLSIG-Funktion) einmalig ein SOLSIG-Eintrag eingetragen. Der Eintrag kann explizit wieder gelöscht werden (DELFEI).
Die Task des Aufrufers muss der Ereigniskennung zugeordnet sein (ENAEI).

Makrobeschreibung

Der Makro RSOFEI nimmt Bezug auf einen SOLSIG-Eintrag in der EVENTLST und fordert ein Signal (Ereignis) von einer Ereigniskennung an. Die Task des Aufrufers wird in den Wartezustand versetzt, wenn das angeforderte Signal noch nicht eingetroffen ist, jedoch längstens bis Ablauf der angegebenen Wartezeit (Makro DSOFEI).

Makroaufrufformat und Operandenbeschreibung

RSOFEI

REFNUM=(r)

REFNUM=r
bezeichnet ein Register, das (direkt) die Referenznummer für den SOLSIG-Eintrag enthält.

(r)
r = Register mit der Referenznummer.

Rückinformation und Fehleranzeigen

Während der Makrobearbeitung enthält Register R1 die Referenznummer.Register R0 wird mit einem internen Funktionscode überschrieben.

R15:

+---------------+
|   |   |   |   |
|b|b| | | | |a|a|
+---------------+

Über die Ausführung des Makros RSOFEI wird ein gegliederter Returncode (aa=primärer RC, bb=sekundärer RC) im Register R15 übergeben.

X'bb'

X'aa'

Erläuterung

X'00'

X'00'

Normale Ausführung: Das Ereignis ist eingetreten. Ein Postcode wurde übertragen,
sofern er angegeben war.

X'30'

X'00'

Funktion ausgeführt: Postcode konnte nicht übertragen werden, weil der Empfänger
kein Empfangsfeld bereitgestellt hatte.

X'34'

X'00'

Funktion ausgeführt: Postcode wurde nicht übertragen, weil er mit
X' 00000000' angegeben wurde.

X'38'

X'00'

Funktion ausgeführt: Postcode wurde rechts abgeschnitten (Empfangsfeld zu
klein).

X'3C'

X'00'

Funktion ausgeführt: Postcode wurde linksbündig eingetragen (Empfangsfeld zu
groß). Diese Rückinformation tritt nicht auf, wenn im Makro DSOFEI der Operand
RPOSTNUM verwendet wird.

X'04'

X'04'

Keine Aktion: Falsche Referenznummer (SOLSIG-Eintrag schon gelöscht?)

X'20'

X'04'

Keine Aktion: Das Ereignis ist innerhalb der Wartezeit nicht eingetreten.

X'28'

X'04'

Keine Aktion: Die Zuordnung zu der Ereigniskennung wurde vor dem Eintreffen
des Ereignisses gelöst (Makro DISEI).

X'50'

X'04'

Kein Ereignis verfügbar.