Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Set_Receive_Type - Empfangsmodus (receive_type) setzen

&pagelevel(4)&pagelevel

Der Aufruf Set_Receive_Type (CMSRT) setzt den Wert für die Conversation Characteristic receive_type. In receive_type legen Sie fest, ob die Receive- und Receive_Mapped_Data-Aufrufe blockierend oder nicht-blockierend ausgeführt werden. Der Aufruf überschreibt den Wert von receive_type, der beim Initialize_Conversation-Aufruf zugewiesen wurde.

Der Aufruf Set_Receive_Type ist im Zustand "Initialize", "Send" oder "Receive" erlaubt.

Diese Funktion gehört zu den Advanced Functions.

UPIC-Local auf Unix-, Linux- und Windows-Systemen:

Der Aufruf Set_Receive_Type wird bei der Anbindung über UPIC-L nicht unterstützt.

Syntax
CMSRT (conversation_ID, receive_type, return_code)

Parameter

--> conversation_ID

Identifikation der Conversation

--> receive_type

legt fest, ob die folgenden Receive- / Receive_Mapped_Data-Aufrufe
blockierend oder nicht-blockierend ausgeführt werden. Folgende
Werte können Sie angeben:

  • CM_RECEIVE_AND_WAIT
    Die Aufrufe Receive und Receive_Mapped_Data wirken blockierend, d.h. liegt zum Aufrufzeitpunkt keine Information vor, wird so lange gewartet, bis Informationen für diese Conversation vorliegen. Erst dann kehrt der Programmlauf aus dem Receive- bzw. Receive_Mapped_Data-Aufruf zurück und übergibt die Daten an das Programm.
    Liegt zum Aufrufzeitpunkt bereits eine Information vor, dann empfängt das Programm sie ohne zu warten.
    Wurde vor dem Receive- bzw. Receive_Mapped_Data-Aufruf mit Set_Receive_Timer eine maximale Wartezeit (Timeout-Timer) gesetzt, dann kehrt der Programmlauf nach Ablauf dieser Wartezeit aus dem Receive- bzw. Receive_Mapped_Data-Aufruf zurück, auch wenn noch keine Information vorliegt.

  • CM_RECEIVE_IMMEDIATE
    Die Aufrufe Receive und Receive_Mapped_Data wirken nicht-blockierend, d.h. liegen zum Aufrufzeitpunkt Informationen vor, dann empfängt das Programm sie ohne zu warten.
    Liegen zum Aufrufzeitpunkt keine Informationen vor, dann wartet das Programm nicht. Der Programmlauf kehrt sofort aus dem Receive- bzw. Receive_Mapped_Data-Aufruf zurück.

<-- return_code

Ergebnis des Funktionsaufrufs

          

Ergebnis (return_code)

CM_OK

Aufruf ok

CM_PROGRAM_PARAMETER_CHECK

Der Wert in conversation_ID ist ungültig oder der Wert von receive_type ist undefiniert.

CM_PRODUCT_SPECIFIC_ERROR

Die  UPIC-Instanz konnte nicht gefunden werden.

CM_CALL_NOT_SUPPORTED

Die Funktion wird nicht unterstützt.

Zustandsänderung

Im fehlerfreien Fall liefert die Funktion das Ergebnis CM_OK zurück. Dieser Aufruf ändert den Zustand der Conversation nicht.

Hinweis

  • Falls der Returncode von CM_OK verschieden ist, bleibt die Characteristic receive_type unverändert.

  • Wird Set_Receive_Type im Zustand "Start" oder "Reset" aufgerufen, dann ist der in conversation_ID übergebene Wert immer ungültig. Als Ergebnis des Aufrufs wird dann immer der Returncode CM_PROGRAM_PARAMETER_CHECK zurückgeliefert.

Verhalten im Fehlerfall

CM_PROGRAM_PARAMETER_CHECK

Programm ändern.

CM_PRODUCT_SPECIFIC_ERROR

Das Betriebssystem kann nicht genügend Speicherplatz für interne Puffer bereitstellen. Überprüfen Sie Ihr Programm auf zu hohe Speicherplatzanforderung und starten Sie ggf. Ihr System neu.

CM_CALL_NOT_SUPPORTED

Dieser Returncode gilt nur für Unix-, Linux- und Windows-Systeme.
Muss kein Fehler sein: Falls eine Anwendung sowohl für UPIC-L als auch für UPIC-R vorgesehen ist, bedeutet dieser Returncode lediglich, dass die Anwendung mit einer UPIC-L-Bibliothek gebunden ist. Das Programm kann sich diesen Returncode merken und auf weitere Set_Receive_Type Aufrufe verzichten.


Funktionsdeklaration: Set_Receive_Type
CM_ENTRY Set_Receive_Type ( unsigned char   CM_PTR  conversation_ID,
                            CM_RECEIVE_TYPE CM_PTR  receive_type,
                            CM_RETURN_CODE  CM_PTR  return_code )