Update Reference.md
This commit is contained in:
parent
7375d259d7
commit
ac178ae7b8
|
|
@ -124,3 +124,30 @@ Creating an instance of this **class** overrides the default HAP range for a Cha
|
|||
|
||||
* instantiated Ranges are added to the HomeSpan HAP Database and associated with the last Characteristic instantiated
|
||||
* instantiating a Range without first instantiating a Characteristic throws an error during initialization
|
||||
|
||||
## SpanButton(int pin, uint16_t longTime=2000, uint16_t singleTime=5, uint16_t doubleTime=200)*
|
||||
|
||||
Creating an instance of this **class** attaches a pushbutton handler to the ESP32 *pin* specified.
|
||||
|
||||
* instantiated Buttons are associated with the last Service instantiated
|
||||
* instantiating a Button without first instantiating a Service throws an error during initialization
|
||||
|
||||
* *pin* - the ESP32 pin to which a one pole of a normally-open pushbutton will be connected; the other pole is connected to ground
|
||||
* *longTime* - the minimum time (in millis) required for the button to be pressed and held to trigger a Long Press (default=2000 ms)
|
||||
* *singleTime* - the minimum time (in millis) required for the button to be pressed to trigger a Single Press (default=5 ms)
|
||||
* *doubleTime* - the maximum time (in millis) allowed between consecutive Single Presses to qualify as a Double Press (default=200 ms)
|
||||
|
||||
* Trigger Rules:
|
||||
* If button is pressed and continuously held, a Long Press will be triggered every longTime ms until the button is released
|
||||
* If button is pressed for more than singleTime ms but less than longTime ms and then released, a Single Press will be triggered, UNLESS the button is pressed a second time within doubleTime ms AND held again for at least singleTime ms, in which case a DoublePress will be triggered; No further events will occur until the button is released
|
||||
* If singleTime>longTime, only Long Press triggers can occur
|
||||
* If doubleTime=0, Double Presses cannot occur
|
||||
|
||||
* HomeSpan automatically calls the `button(int pin, int pressType)` method of a Service upon a trigger event in any Button associated with that Service, where *pin* is the ESP32 pin to which the pushbutton is connected, and *pressType* is an integer that can also be represented by the enum constants indicated:
|
||||
* 0=single press (SpanButton::SINGLE)
|
||||
* 1=double press (SpanButton::DOUBLE)
|
||||
* 2=long press (SpanButton::LONG)
|
||||
|
||||
* HomeSpan will report a warning, but not an error, during initialization if the user had not overridden the virtual button() method for Service into which they added one or more Buttons. Triggers of those Buttons will simply ignored.
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue