PCE version 4C man_modulenamespaceid_tablemodified current_idOIxN class/timerN referenceC hash_tablerefersizeOIxNbothI sNM.timer.S.initialiseCman_method_card identifiermodule last_modifiednamesummary descriptionsee_alsoinherit diagnosticsdefaultsbugsOIxNM.timer.S.initialiseRICdateOIx,QÂ.N initialisenCstringOIx“Create a timer object from its interval and the message to execute. After creation, the timer is idle. Use ->start or ->status to start the timer.nnnnnsNM.timer.S.executeOIxNM.timer.S.executeRIOIx,QÃNexecutenOIxYExecute the timers <-message with the following arguments: @receiver The timer itself.nnnnnsNV.timer.statusCman_variable_card identifiermodule last_modifiednamesummary descriptionsee_alsoinheritdefaultsOI xNV.timer.statusRIOI x<¾–>NstatusnOI x”Status of the timer. Its values: idle Timer is not running once After ->execute'ing once it will stop repeat Timer will repeat ->execute'ingnnnsNC.timerCman_class_card identifiermodule last_modifiednamesummary descriptionsee_alsoinherituser_interfacebugsOI xNC.timerRIOI x8•µMNtimernOIxgA timer is an object that -when the system is dispatching messages- generates an event at regular intervals. Timers are used to implement simulation, blinking (caret) or to wake-up the user under some (time-based) conditions. The interval of a timer is specified as a real-number. The actual accuracy depends on the timing capabilities offered by the X-implementation on which PCE has been build. When executing the message, no arguments are forwarded. @receiver is bound to the timer itself. See ->execute. NOTE: When multiple objects are `animated' at a similar speed performance will be much better if a single timer is used. The code below provides a skeleton: :- pce_global(@stepping, chain). start_stepping :- send(new(@stepper, timer(1, message(@stepper, for_all, step))), start). step(Obj) :- send(@stepping, append, Obj).CchainsizeOIxIEN$class/date$C.dateXnnnsNM.timer.S.runningOIxNM.timer.S.runningRIOIx,QÃóNrunningnOIx„Start/stop the timer in repeat mode. @on, ->start is equivalent to ->status: repeat @off, ->stop is equivalent to ->status: idle.nnnnnsNV.timer.messageOIxNV.timer.messageRIOIx8•µ+NmessagenOIx4Code executed each time. See ->execute for details.nnnsNM.timer.S.startOIxNM.timer.S.startRIOIx,QÄ NstartnnnOIxIENM.timer.S.runningXnnnsNV.timer.intervalOIxNV.timer.intervalRIOIx8§æuNintervalnOIx~Interval in seconds. Note that * The timer is only executing if PCE is in its idle loop (see `display ->dispatch'). * Granularity depends on the underlying implementation. For the X11 version, consult the manual page for select(). The interval may be changed when the timer is running. In this case it will first fire <-interval seconds from the time is was changed.nnnsNV.timer.serviceOIxNV.timer.serviceRIOIx=ëu²NservicenOIxEIf @on, execution cannot be debugged. See also `application ->kind'.nnnsNM.timer.S.delayOIxNM.timer.S.delayRIOI x.ÆÒNdelaynOI!xJDelay for <-interval. XPCE processes events while execution is suspended.nnnnnsNM.timer.S.stopOI"xNM.timer.S.stopRIOI#x,QÄ NstopnnnOI$xIENM.timer.S.runningXnnnXaCnumber O I%xx