ProtoFlux:Stopwatch: Difference between revisions

From Resonite Wiki
Added a description, moved relevant information from the input/output descriptions into the main description. Removed Stub tag.
cleanup, fixup links
Line 18: Line 18:
}}
}}


The <code>Stopwatch</code> node keeps track of time when running. To start the Stopwatch, send in a pulse to the Start Call. To stop the Stopwatch, send a pulse to the Stop Call. To reset the current value in this Stopwatch, send a pulse to the Reset Call. You can send a reset call when the Stopwatch is running, this will keep it running and the value will just be reset. Sending multiple pulses to the same call will not change it's previous state (Start does nothing if already started, stop does nothing when already stopped, reset does nothing when the value is 0).
The '''Stopwatch''' node keeps track of time when running. Akin to a [https://en.wikipedia.org/wiki/Stopwatch real stopwatch], it allows one to start time, stop time, and reset time.


== Inputs ==
== Inputs ==


=== Start ([[Impulses|Call]]) ===  
=== Start ([[Impulses|Call]]) ===
Starts the stopwatch, putting it in the running state.


Calls to Start the Stopwatch, setting the <code>IsRunning</code> state to true. Does nothing if the Stopwatch is already in a running state.
=== Stop ([[Impulses|Call]]) ===
Stops the stopwatch, putting it in the stopped state.


=== Stop ([[Impulses|Call]]) ===  
=== Reset ([[Impulses|Call]]) ===
 
Resets the stopwatch time. Does not affect the state of the stopwatch.
Calls to Stop the Stopwatch, setting the <code>IsRunning</code> state to false. Does nothing if the Stopwatch is already in the stopped state.
 
=== Reset ([[Impulses|Call]]) ===
 
Calls to Reset the Stopwatch, sets the Time output to zero (0).


== Outputs ==
== Outputs ==


=== OnStarted ([[Impulses|Continuation]]) ===
=== OnStarted ([[Impulses|Continuation]]) ===
 
Sends an impulse when <code>Start</code> is impulsed. Is not affected by the state of the stopwatch.
Sends an impulse after a Start [[Impulses|Call]] has been impulsed.


=== OnStopped ([[Impulses|Continuation]]) ===
=== OnStopped ([[Impulses|Continuation]]) ===
 
Sends an impulse when <code>Stop</code> is impulsed. Is not affected by the state of the stopwatch.
Sends an impulse after a Stop [[Impulses|Call]] has been impulsed.


=== OnReset ([[Impulses|Continuation]]) ===
=== OnReset ([[Impulses|Continuation]]) ===
 
Sends an impulse when <code>Reset</code> is impulsed. Is not affected by the state of the stopwatch.
Sends an impulse after a Reset [[Impulses|Call]] has been impulsed.


=== Time ([[Type:Float|Float]]) ===
=== Time ([[Type:Float|Float]]) ===
The time in seconds stored by the stopwatch. This value increments when in the running state and freezes when in the stopped state. If <code>Reset</code> is pulsed, this output is set to <code>0</code>, but continues the same behavior of the state the watch is in.


Returns the amount of time since the stopwatch has been started, as a [[Type:Float|Float]] representing seconds before the decimal place and fractions of a second after the decimal place. If a [[Type:TimeSpan|TimeSpan]] is desired instead of a [[Type:Float|Float]], use the [[ProtoFlux:TimeSpanFromSeconds|TimeSpanFromSeconds]] node to convert for the appropriate resolution.
Sometimes, it may be desirable to obtain a [[Type:TimeSpan|TimeSpan]] type from this value. To do so, use a [[ProtoFlux:TimeSpan From Seconds|TimeSpan From Seconds]] node.


=== IsRunning ([[Type:Bool|Bool]]) ===
=== IsRunning ([[Type:Bool|Bool]]) ===
 
<code>True</code> if the stopwatch is in a running state, <code>False</code> otherwise.
Is true if the Stopwatch is in a Running state and false if the Stopwatch is in a Stopped state.


== Examples ==
== Examples ==


[[Category:ProtoFlux:Time]]
[[Category:ProtoFlux:Time]]

Revision as of 19:38, 4 July 2024

Stopwatch
Start
OnStart
Stop
OnStop
Reset
OnReset
Time
IsRunning
Actions

The Stopwatch node keeps track of time when running. Akin to a real stopwatch, it allows one to start time, stop time, and reset time.

Inputs

Start (Call)

Starts the stopwatch, putting it in the running state.

Stop (Call)

Stops the stopwatch, putting it in the stopped state.

Reset (Call)

Resets the stopwatch time. Does not affect the state of the stopwatch.

Outputs

OnStarted (Continuation)

Sends an impulse when Start is impulsed. Is not affected by the state of the stopwatch.

OnStopped (Continuation)

Sends an impulse when Stop is impulsed. Is not affected by the state of the stopwatch.

OnReset (Continuation)

Sends an impulse when Reset is impulsed. Is not affected by the state of the stopwatch.

Time (Float)

The time in seconds stored by the stopwatch. This value increments when in the running state and freezes when in the stopped state. If Reset is pulsed, this output is set to 0, but continues the same behavior of the state the watch is in.

Sometimes, it may be desirable to obtain a TimeSpan type from this value. To do so, use a TimeSpan From Seconds node.

IsRunning (Bool)

True if the stopwatch is in a running state, False otherwise.

Examples