Der Aufruf Set_Allocate_Timer (CMSAT) setzt den Timeout für einen Allocate-Aufruf.
Wenn dieser Timer gesetzt ist, wird der Aufruf Allocate nach der im Feld allocate_timer festgelegten Zeit abgebrochen.
Der Aufruf Set_Allocate_Timer ist nur im Zustand „Initialize“ erlaubt.
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_Allocate_Timer wird bei der Anbindung über UPIC-Local nicht unterstützt.
CMSAT (conversation_ID, allocate_timer, return_code)
Parameter
--> conversation_ID | Identifikation der Conversation. |
--> allocate_timer | Zeit in Millisekunden, nach der ein Allocate-Aufruf unterbrochen wird. Der Allocate-Timer wird zurückgesetzt, wenn Sie allocate_timer auf 0 setzen. Die Wartezeit des Allocate-Aufrufs wird dann nicht mehr überwacht. Der für allocate_timer angegebene Wert wird auf die nächste volle Sekunde aufgerundet. |
<-- return_code | Ergebnis des Funktionsaufrufs. |
Ergebnis (return_code)
CM_OK
Aufruf ok
CM_CALL_NOT_SUPPORTED
Dieser Returncode gilt nur für Unix-, Linux- und Windows-Systeme.
Die Funktion wird nicht unterstützt. Dieser Returncode tritt nur bei UPIC-L auf.
CM_PROGRAM_STATE_CHECK
Die Conversation ist nicht im Zustand "Initialize"
CM_PROGRAM_PARAMETER_CHECK
Der Wert der conversation_ID ist ungültig oder in allocate_timer wurde ein Wert < 0 angegeben.
CM_PRODUCT_SPECIFIC_ERROR
Die UPIC-Instanz konnte nicht gefunden werden.
Zustandsänderung
Im fehlerfreien Fall liefert die Funktion das Ergebnis CM_OK zurück. Der Aufruf ändert den Zustand der Conversation nicht.
Hinweis
Der Set_Allocate_Timer ist nur sinnvoll im Zusammenhang mit dem Allocate-Aufruf. Set_Allocate_Timer kann zwischen einem Initialize_Conversation- und einem Allocate-Aufruf beliebig oft aufgerufen werden. Es gilt immer der Wert, der beim letzten Aufruf von Set_Allocate_Timer vor einem Allocate-Aufruf gesetzt wurde.
Verhalten im Fehlerfall
CM_CALL_NOT_SUPPORTED
Dieser Returncode gilt nur für Unix-, Linux- und Windows-Systeme.
Muss nicht unbedingt ein 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. In diesem Fall sind Timer-Funktionen nicht möglich. Das Programm kann sich diesen Returncode merken und auf weitere Aufrufe bzgl. des Timers verzichten.
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_ENTRY Set_Allocate_Timer ( unsigned char CM_PTR conversation_ID, CM_TIMEOUT CM_PTR allocate_timer, CM_RETURN_CODE CM_PTR return_code )