moin moin
ich hab ein kleines programm geschrieben, das den "WAIT FOR" ersetzen soll. es tut eine bestimmte zeit einen eingang auf einen bestimmten wert abfragen und bei misserfolg definierbar reagieren:
Code
DEF await( input:IN, state:IN, timeout:IN, error:IN, reaction:IN )
INT input
BOOL state
REAL timeout
DECL PROG_ERRTXT error
DECL REACTION reaction
EXT error_handler( CHAR[]:IN, PROG_ERRTXT:IN )
$TIMER[4] = -( timeout * 1000 )
$TIMER_STOP[4] = FALSE
WAIT FOR $TIMER_FLAG[4] OR $IN[input] == state
$TIMER_STOP[4] = TRUE
IF NOT $IN[input] == state THEN
SWITCH reaction
CASE #IGNORE
; ignore
CASE #WARN
error_handler( " ", error )
CASE #PERSIST
error_handler( " ", error )
WAIT FOR $IN[input] == state
error_handler( " ", #OK )
ENDSWITCH
ENDIF
END
Alles anzeigen
soweitsogut. nur würde ich den "input" gerne name übergeben anstatt als INT. halt genau so, wie er im $config.dat als SIGNAL deklariert wurde. ist das irgendwie möglich
besten dank!