44#define BTN_MIN_PRESS_TIME 5
46#ifndef BTN_SHARED_SENSE_DELAY
47#define BTN_SHARED_SENSE_DELAY 2
The main ca821x-api include file.
Global error declarations for use across the Cascoda SDK.
ca_error Btn_RegisterButtonInput(uint8_t ledBtn)
Register button input.
Definition cascoda_btn.c:88
ca_error Btn_HandleButtonCallbacks(btn_callback_info *callback, uint8_t pressed)
Process the button callbacks and timing.
Definition cascoda_btn.c:323
ca_error Btn_DeRegister(uint8_t ledBtn)
De-Register an LED or Button Pin.
Definition cascoda_btn.c:180
ca_error Btn_SenseOutput(uint8_t ledBtn, uint8_t *val)
Get the output state of the LED.
Definition cascoda_btn.c:272
ca_error Btn_DecrementGPIOWakeup(void)
One fewer GPIO is now being used for wakeup.
Definition cascoda_btn.c:388
ca_error Btn_SetButtonShortPressCallback(uint8_t ledBtn, btn_callback callback, void *context, uint8_t shortPressMode)
Set a callback function to a button when it is short pressed.
Definition cascoda_btn.c:200
bool Btn_CanSleep(void)
Check if all buttons have been handled.
Definition cascoda_btn.c:411
ca_error Btn_RegisterSharedButtonLED(uint8_t ledBtn)
Register button as shared input/output.
Definition cascoda_btn.c:134
ca_error Btn_PollButtons(void)
Main polling function to activate callbacks for any buttons that are currently being pressed.
Definition cascoda_btn.c:279
btn_shortpress_mode
Definition cascoda_btn.h:56
@ BTN_SHORTPRESS_RELEASED
Definition cascoda_btn.h:58
@ BTN_SHORTPRESS_PRESSED
Definition cascoda_btn.h:57
void Btn_SetSleepPermanently(void)
Register that the device will be put to sleep permanently.
Definition cascoda_btn.c:404
void Btn_IncrementGPIOWakeup(void)
One additional GPIO is now being used for wakeup.
Definition cascoda_btn.c:381
ca_error Btn_SetLED(uint8_t ledBtn, uint8_t val)
Set the state of the LED.
Definition cascoda_btn.c:227
void(* btn_callback)(void *context)
Definition cascoda_btn.h:85
btn_pin_int
Definition cascoda_btn.h:79
@ PIN_INTERRUPT
Definition cascoda_btn.h:81
@ PIN_NO_INTERRUPT
Definition cascoda_btn.h:80
ca_error Btn_RegisterLEDOutput(uint8_t ledBtn)
Register LED output (open drain).
Definition cascoda_btn.c:73
ca_error Btn_Sleep(enum wakeup_mode keep_radio_off_on_wakeup, uint32_t aSleepTime, struct ca821x_dev *pDeviceRef)
Put board to sleep / powerdown.
Definition cascoda_btn.c:426
ca_error Btn_SetButtonHoldCallback(uint8_t ledBtn, btn_callback callback, void *context, uint32_t TimeInterval)
Set a callback function to a button when it is held.
Definition cascoda_btn.c:218
uint8_t registeredPinMappings[]
Definition cascoda_btn.c:40
ca_error Btn_Sense(uint8_t ledBtn, uint8_t *val)
Get the state of the LED/Button.
Definition cascoda_btn.c:234
ca_error Btn_RegisterSharedIRQButtonLED(uint8_t ledBtn)
Register button as shared input/output with interrupt (for sleepy devices).
Definition cascoda_btn.c:156
btn_button_state
Definition cascoda_btn.h:63
@ BTN_PRESSED
Definition cascoda_btn.h:64
@ BTN_RELEASED
Definition cascoda_btn.h:65
ca_error Btn_RegisterButtonIRQInput(uint8_t ledBtn)
Register button input with interrupt (for sleepy devices).
Definition cascoda_btn.c:110
ca_error Btn_SetButtonLongPressCallback(uint8_t ledBtn, btn_callback callback, void *context, uint32_t timeThreshold)
Set a callback function to a button when it is long pressed.
Definition cascoda_btn.c:209
btn_pin_type
Definition cascoda_btn.h:70
@ PINTYPE_BTN
Definition cascoda_btn.h:73
@ PINTYPE_SHARED
Definition cascoda_btn.h:74
@ PINTYPE_LED
Definition cascoda_btn.h:72
@ PINTYPE_NONE
Definition cascoda_btn.h:71
Declaration of EVBME Functions.
Type definitions used by Cascoda baremetal drivers.
wakeup_mode
Definitions for Wakeup after Powerdown.
Definition cascoda_evbme.h:72
ca_error
Cascoda error type.
Definition ca821x_error.h:51
Callbacks and associated timers for the buttons.
Definition cascoda_btn.h:89
void * shortPressContext
Context for shortPressCallback.
Definition cascoda_btn.h:91
void * holdContext
Context for holdCallback.
Definition cascoda_btn.h:97
btn_callback shortPressCallback
Callback function for a short button press.
Definition cascoda_btn.h:90
uint32_t longPressTimeThreshold
Time limit [ms] above which a button press is considered a long press.
Definition cascoda_btn.h:100
uint32_t holdTimeLast
Time [ms] when hold callback was last called.
Definition cascoda_btn.h:102
uint8_t lastState
Last button state.
Definition cascoda_btn.h:103
uint32_t currentPressTime
Time [ms] when the button has been pressed.
Definition cascoda_btn.h:99
void * longPressContext
Context for longPressCallback.
Definition cascoda_btn.h:94
btn_callback holdCallback
Callback function for when the button is held.
Definition cascoda_btn.h:96
btn_callback longPressCallback
Callback function for a long button press.
Definition cascoda_btn.h:93
uint8_t shortPressMode
Short Press callback when pressed or on release.
Definition cascoda_btn.h:104
uint32_t holdTimeInterval
Time interval [ms] for triggering the hold function.
Definition cascoda_btn.h:101
CA-821x Device reference struct.
Definition ca821x_api.h:164