Class SoTimeCounter
- All Implemented Interfaces:
SafeDisposable
The difference between this engine and the SoCounter
engine, is that this engine also has a timeIn
input, which allows the counting cycles to be timed. This engine counts automatically over time; it does not need to be triggered to go to the next step. By default, the timeIn
input is connected to the realTime global field. It can, however, be connected to any time source.
The frequency
input field controls how many min-to-max cycles are performed per second. For example, a frequency
value of 0.5 means that it will take 2 seconds to complete a single min-to-max cycle.
The steps in the count cycle do not necessarily all have the same duration. Using the duty
input field, you can arbitrarily split the time period of the count cycle between the steps. For example, if there are 5 steps in the cycle, a duty input of (1., 2., 2., 2., 1.) will make the second, third, and fourth steps take twice as long as the first and last steps.
At any time the counter can be reset to a specific value. If you set the reset
input field to a value, the engine will continue counting from there. Note that the counter will always output numbers based on the min
, max
and step
values, and setting the reset
value does not affect the those input fields. If the reset value is not a legal counter value, the counter will still behave as though it is:
- If
reset
is greater thanmax
, the counter is set tomax
. - If
reset
is less thanmin
, the counter is set tomin
. - If
reset
is between step values, the counter is set to the lower step.
Each time a counting cycle is started, the syncOut
output is triggered. This output can be used to synchronize some other event with the counting cycle. Other events can also synchronize the counter by triggering the syncIn
input.
You can pause the engine, by setting the on
input to false, and it will stop updating the output field. When you turn off the pause, by setting on
to true, it will start counting again from where it left off.
File format/default:
TimeCounter {
min | 0 |
max | 1 |
step | 1 |
on | true |
frequency | 1 |
duty | 1 |
timeIn | <current time> |
syncIn | |
reset | 0 |
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal SoMFFloat
Duty cycle values.final SoSFFloat
Number of min-to-max cycles per second.final SoSFShort
Maximum value for the counter.final SoSFShort
Minimum value for the counter.final SoSFBool
Counter pauses if this is set to false.final SoEngineOutput
(SoSFShort
) Counts min-to-max, in step increments.final SoSFShort
Reset the counter to the specified value.final SoSFShort
Counter step value.final SoSFTrigger
Restart at the beginning of the cycle.final SoEngineOutput
(SoSFTrigger
) Triggers at cycle start.final SoSFTime
Running time.Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class com.openinventor.inventor.engines.SoEngine
copy, getByName, getOutput, getOutputName
Methods inherited from class com.openinventor.inventor.fields.SoFieldContainer
copyFieldValues, copyFieldValues, enableNotify, fieldsAreEqual, get, getAllFields, getEventIn, getEventOut, getField, getFieldName, hasDefaultValues, isNotifyEnabled, set, setToDefaults
Methods inherited from class com.openinventor.inventor.misc.SoBase
dispose, getName, isDisposable, isSynchronizable, setName, setSynchronizable, touch
Methods inherited from class com.openinventor.inventor.Inventor
getNativeResourceHandle
-
Field Details
-
min
Minimum value for the counter. -
max
Maximum value for the counter. -
step
Counter step value. -
on
Counter pauses if this is set to false. -
frequency
Number of min-to-max cycles per second. -
duty
Duty cycle values. -
timeIn
Running time. -
syncIn
Restart at the beginning of the cycle. -
reset
Reset the counter to the specified value. -
output
(SoSFShort
) Counts min-to-max, in step increments. -
syncOut
(SoSFTrigger
) Triggers at cycle start.
-
-
Constructor Details
-
SoTimeCounter
public SoTimeCounter()Constructor.
-