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_Timer - Timer für den blockierenden Receive setzen

&pagelevel(4)&pagelevel

Der Aufruf Set_Receive_Timer (CMSRCT) setzt den Timeout-Timer für einen blockierenden Receive- bzw. Receive_Mapped_Data-Aufruf.

Wenn dieser Timer gesetzt ist und für den Datenempfang receive_type=CM_RECEIVE_AND_WAIT gesetzt ist, werden die Aufrufe Receive und Receive_Mapped_Data nach der im Feld receive_timer festgelegten Zeit abgebrochen.

Set_Receive_Timer darf nach dem Allocate-Aufruf zu jedem beliebigen Zeitpunkt und beliebig oft innerhalb einer Conversation aufgerufen werden. Es gilt jeweils die Timer-Einstellung des letzten Set_Receive_Timer-Aufrufs.

Diese Funktion ist nicht Bestandteil der CPI-C Spezifikation, sondern eine zusätzliche Funktion des UPIC-Trägersystems.

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

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

Syntax
CMSRCT (conversation_ID, receive_timer, return_code)

Parameter

--> conversation_ID

Identifikation der Conversation

--> receive_timer

Zeit in Millisekunden, nach der ein blockierender Receive- bzw. Receive_Mapped_Data-Aufruf unterbrochen wird. Die Aufrufe Receive- und Receive_Mapped_Data wirken blockierend, wenn die Characteristic receive_type den Wert CM_RECEIVE_AND_WAIT hat.
Der Receive-Timer wird zurückgesetzt, wenn Sie receive_timer auf 0 setzen. Die Wartezeit des Receive()- oder Receive_Mapped_Data()- Aufrufs wird dann nicht mehr überwacht.

Der für receive_timer angegebene Wert wird auf die nächste volle Sekunde aufgerundet.

<-- return_code

Ergebnis des Funktionsaufrufs

Ergebnis (return_code)

CM_OK

Aufruf ok

CM_PROGRAM_STATE_CHECK

Die Conversation ist nicht im Zustand "Send" oder "Receive".

CM_PROGRAM_PARAMETER_CHECK

Der Wert in conversation_ID ist ungültig oder in receive_timer wurde ein Wert < 0 angegeben.

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

  • Der Set_Receive_Timer ist nur sinnvoll im Zusammenhang mit den Aufrufen Receive und Receive_Mapped_Data.

  • Set_Receive_Timer kann innerhalb einer Conversation beliebig oft aufgerufen werden. Es gilt immer der Wert, der beim letzten Aufruf von Set_Receive_Timer vor einem Receive- bzw. Receive_Mapped_Data-Aufruf gesetzt wurde. Der gesetzte Wert bleibt bis zum nächsten Set_Receive_Timer-Aufruf bzw. bis zum Ende der Conversation gültig.

Verhalten im Fehlerfall

CM_PROGRAM_STATE_CHECK

Programm ändern.

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_Timer Aufrufe verzichten.


Funktionsdeklaration: Set_Receive_Timer
CM_ENTRY Set_Receive_Timer ( unsigned char  CM_PTR  conversation_ID,
                             CM_TIMEOUT     CM_PTR  timeout_time,
                             CM_RETURN_CODE CM_PTR  return_code )