Counter¶
Description¶
The Counter object provides a basic counter functionality. It increments the value property periodically depending on the configured interval. It’s also possible to count backwards by setting the increment property to a negative value and optionally setting the startValue property.
› Inherits: | Object |
---|
Properties¶
increment¶
This property holds the number by which value is incremented each period. It can be both positive and negative. Negative values will make the counter count backwards.
› Type: | SignedInteger |
---|---|
› Default: | 1 |
› Signal: | incrementChanged() |
› Attributes: | Writable, Optional |
interval¶
This property holds the counter interval in milliseconds. The interval has to be greater than 0
in order to make the counter work properly. Additionally running has to be true
.
› Type: | SignedInteger |
---|---|
› Default: | 1000 |
› Signal: | intervalChanged() |
› Attributes: | Writable |
running¶
This property holds whether the counter is running. Changing this property does not reset the counter’s value.
› Type: | Boolean |
---|---|
› Default: | true |
› Signal: | runningChanged() |
› Attributes: | Writable |
startValue¶
This property holds the start value which the value property is initialized on start and every reset(). Changing this value has no effect on running counters until reset() is called.
› Type: | SignedInteger |
---|---|
› Default: | 0 |
› Signal: | startValueChanged() |
› Attributes: | Writable |
value¶
This property holds the current value of the counter. On initial start and on every reset() the property is set to startValue. It is incremented by increment every interval milliseconds.
› Type: | SignedBigInteger |
---|---|
› Default: | 0 |
› Signal: | valueChanged() |
› Attributes: | Readonly |
Methods¶
reset()¶
This method resets the counter by setting the value back to startValue. It can be called on both stopped and running counters. Running counters will continue to run after being reset.
Example¶
import InCore.Foundation 2.5
import InCore.IO 2.5
Application {
DigitalIO {
id: input
direction: DigitalIO.Input
index: DigitalIO.IO1
}
Counter {
id: secCounter
interval: 100 //10 per second
running: input.value
startValue: 0 //default
onValueChanged: console.log( ( "input were %1 seconds on" ).arg( input.value / 10. ) )
}
}