beansdoc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
beansdoc [2011/01/05 11:28]
hourdin More basic beans
beansdoc [2011/06/21 18:08] (current)
hourdin [Beans managing time and threads]
Line 39: Line 39:
  
 ==== Counter ==== ==== Counter ====
 +
 +This integer counter increments its internal value when the **Increment()** input method is called. It sends a //void// event indicating that its value has changed, and provides an //integer// property (Value) and thus the **get_Value()** property getter method to retrieve the value of the internal counter.
 +
 +Moreover, it has the ability to apply a modulo to the incrementing internal counter. This can be useful to make binary counters (modulo = 2) for example. In this case, when the counter comes back to 0, the Carry event is raised, allowing to cascade the counters when a modulo is used, and create a multi-bit counter for example. The value of the modulo is parametrized by the **Modulo** property.
 +
 +  * **Increment()**:​ input method, incrementing the internal counter value.
 +  * **^ValueChanged**:​ //void// notification of incrementation. Use the **get_Value()** property getter as callback value to complete integer method calls.
 +  * **^Carry**: //void// notification of reset of the counter value because of modulo value reaching.
 +  * **Reset()**:​ resets the counter, setting 0 for the internal value and sending the ValueChanged event //​(introduced in version 870)//.
  
 ==== EventFilter ==== ==== EventFilter ====
Line 58: Line 67:
  
 ==== Threshold ==== ==== Threshold ====
 +
 +This bean allows to filter a //string// event flow containing decimal numbers according to a minimal or maximal value of the decimal number. For example, it can allow events to be relayed only when the value in the string is higher than "​17.2"​.
 +  * **set_Value(**//​string//​**)**:​ input method of the bean, receiving the string containing the decimal number.
 +  * **^CeilledValue**:​ the //string//: event emitted when the input value (of set_Value()) was higher than the threshold, or lower if the bean is inverted (Inverted property set to //true//).
 +  * **^ThresholdReachedBool**:​ a //boolean// event sent when the input values cross the threshold level, up or down. The value of the event is //true// when the value is above and //false// when value is below the threshold. This behavior is inverted when the bean is inverted (Inverted property set to //true//).
 +  * The **ThresholdValue** property parametrizes the value of the threshold that evaluates incoming events.
  
 ==== ValueFormatter ==== ==== ValueFormatter ====
Line 66: Line 81:
  
 Example: a "{0} ms" ValueFormat value will emit a "12 ms" string for a Format(12) method invocation. Example: a "{0} ms" ValueFormat value will emit a "12 ms" string for a Format(12) method invocation.
 +
 +===== Beans managing time and threads (in the Basic category) =====
 +
 +==== Timer ====
 +The timer bean allows an event to be sent periodically. It creates a single thread that manages the loop. A sleep is done before each event sending, for the time defined by the **Period** property. It means that if the methods called by the event sending (if the event is linked to methods of other beans) take one second to execute, the actual time between two events will be 1s+Period. The [[beansdoc#​activetimer|ActiveTimer]] bean fixes this issue.
 +  * **^TimerTick**:​ the void event that is sent periodically.
 +  * **Start()**:​ this method is used to start the timer'​s loop once it has been created. It is also used to restart the loop once it has been stopped.
 +  * **Stop()**: stops the loop and thus event sending.
 +
 +==== ActiveTimer ====
 +This timer has the same goal than the [[beansdoc#​timer|Timer]] bean, but creates a new thread on each event sending. The main difference with [[beansdoc#​timer|Timer]] is thus that the time between two events is not affected by what's executed by the event in other beans.
 +It has the same interface than [[beansdoc#​timer|Timer]].
 +
 +==== Delay ====
 +This bean acts as a simple event delayer. It is a generic bean, meaning that it can handle any type of event in input and methods in output. When its **Input()** method is called, it will wait for a delay configured by the **DelayMillisec** property, and send the **^Output** event with the same arguments than the Input.
 +The method and event of this bean, and all other generic beans, won't appear in the compatible list when creating a link. It has to be searched in the incompatible list of methods.
  • beansdoc.1294223322.txt.gz
  • Last modified: 2011/01/05 11:28
  • by hourdin