Package jason.stdlib

Class wait

All Implemented Interfaces:
InternalAction, Serializable

@Manual(literal=".wait([event,expression,timeout][,elapsed_time])", hint="suspend the intention for the time specified, until some event happens or some condition is true", argsHint={"the event to wait for enclosed by { and } [optional]","the expression (as used on plans context) to wait [optional]","how many miliseconds should be waited [optional]","the amount of time the intention was suspended waiting [optional]"}, argsType={"trigger term","logical expression","number","variable"}, examples={".wait(1000)</code>: suspend the intention for 1 second",".wait({+b(1)})</code>: suspend the intention until the belief b(1) is added in the belief base",".wait(b(X) & X > 10): suspend the intention until the agent believes b(X) with X greater than 10",".wait({+!g}, 2000): suspend the intention until the goal g is triggered or 2 seconds have passed, whatever happens first. In case the event does not happens in two seconds, the internal action fails.wait({+!g}, 2000, EventTime): suspend the intention until the goal g is triggered or 2 seconds have passed, whatever happens first. In case the event does not happen in two seconds, the internal action does not fail. The third argument will be unified to the elapsed time (in milliseconds) from the start of .wait until the event or timeout."}, seeAlso="jason.stdlib.at") public class wait extends DefaultInternalAction

Internal action: .wait(E,T).

Description: suspend the intention for the time specified by T (in milliseconds) or until some event E happens. The events follow the AgentSpeak syntax but are enclosed by { and }, e.g. {+bel(33)}, {+!go(X,Y)}.

Parameters:

  • + event (trigger term [optional]): the event to wait for.
  • + logical expression ([optional]): the expression (as used on plans context) to wait to holds.
  • + timeout (number [optional]): how many milliseconds should be waited.
  • - elapse time (var [optional]): the amount of time the intention was suspended waiting.

Examples:

  • .wait(1000): suspend the intention for 1 second.
  • .wait({+b(1)}): suspend the intention until the belief b(1) is added in the belief base.
  • .wait(b(X) invalid input: '&' X > 10): suspend the intention until the agent believes b(X) with X greater than 10.
  • .wait({+!g}, 2000): suspend the intention until the goal g is triggered or 2 seconds have passed, whatever happens first. In case the event does not happens in two seconds, the internal action fails.
  • .wait({+!g}, 2000, EventTime): suspend the intention until the goal g is triggered or 2 seconds have passed, whatever happens first. As this use of .wait has three arguments, in case the event does not happen in two seconds, the internal action does not fail (as in the previous example). The third argument will be unified to the elapsed time (in milliseconds) from the start of .wait until the event or timeout.
See Also: