mirror of
https://github.com/thelsing/knx.git
synced 2025-09-05 17:50:22 +02:00
Better handling of buttonUp() across platforms
This commit is contained in:
parent
9692a1a317
commit
197ea94ab8
@ -5,6 +5,17 @@
|
|||||||
|
|
||||||
KnxFacade<CC1310Platform, Bau27B0> *pKnx = nullptr;
|
KnxFacade<CC1310Platform, Bau27B0> *pKnx = nullptr;
|
||||||
|
|
||||||
|
void buttonUp()
|
||||||
|
{
|
||||||
|
static uint32_t lastpressed=0;
|
||||||
|
if (millis() - lastpressed > 200)
|
||||||
|
{
|
||||||
|
KnxFacade<CC1310Platform, Bau27B0> &knx = *pKnx;
|
||||||
|
knx._toogleProgMode = true;
|
||||||
|
lastpressed = millis();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
pKnx = new KnxFacade<CC1310Platform, Bau27B0>;
|
pKnx = new KnxFacade<CC1310Platform, Bau27B0>;
|
||||||
|
@ -40,25 +40,30 @@
|
|||||||
#else
|
#else
|
||||||
#error Mask version not supported on ARDUINO_ARCH_STM32
|
#error Mask version not supported on ARDUINO_ARCH_STM32
|
||||||
#endif
|
#endif
|
||||||
#elif __linux__
|
#else // Non-Arduino platforms and Linux platform
|
||||||
// no predefined global instance
|
|
||||||
#else // Non-Arduino platforms
|
|
||||||
// no predefined global instance
|
// no predefined global instance
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Only ESP8266 and ESP32 have this define. For all other platforms this is just empty.
|
||||||
#ifndef ICACHE_RAM_ATTR
|
#ifndef ICACHE_RAM_ATTR
|
||||||
#define ICACHE_RAM_ATTR
|
#define ICACHE_RAM_ATTR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (defined(ARDUINO_ARCH_STM32) || \
|
||||||
|
defined(ARDUINO_ARCH_ESP32) || \
|
||||||
|
defined(ARDUINO_ARCH_ESP8266) || \
|
||||||
|
defined(ARDUINO_ARCH_SAMD))
|
||||||
ICACHE_RAM_ATTR void buttonUp()
|
ICACHE_RAM_ATTR void buttonUp()
|
||||||
{
|
{
|
||||||
#if !defined(__linux__) && (defined(ARDUINO_ARCH_STM32) || \
|
|
||||||
defined(ARDUINO_ARCH_ESP32) || \
|
|
||||||
defined(ARDUINO_ARCH_ESP8266) || \
|
|
||||||
defined(ARDUINO_ARCH_SAMD))
|
|
||||||
static uint32_t lastpressed=0;
|
static uint32_t lastpressed=0;
|
||||||
if (millis() - lastpressed > 200){
|
if (millis() - lastpressed > 200){
|
||||||
knx._toogleProgMode = true;
|
knx._toogleProgMode = true;
|
||||||
lastpressed = millis();
|
lastpressed = millis();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
#elif defined(__linux__)
|
||||||
|
void buttonUp()
|
||||||
|
{
|
||||||
|
// no de-bounce on linux platform, just satisfy the compiler
|
||||||
|
}
|
||||||
|
#endif
|
@ -8,18 +8,22 @@
|
|||||||
#include "knx/bau07B0.h"
|
#include "knx/bau07B0.h"
|
||||||
#include "knx/bau27B0.h"
|
#include "knx/bau27B0.h"
|
||||||
#include "knx/bau2920.h"
|
#include "knx/bau2920.h"
|
||||||
|
void buttonUp();
|
||||||
#elif ARDUINO_ARCH_ESP8266
|
#elif ARDUINO_ARCH_ESP8266
|
||||||
#include "esp_platform.h"
|
#include "esp_platform.h"
|
||||||
#include "knx/bau57B0.h"
|
#include "knx/bau57B0.h"
|
||||||
|
void buttonUp();
|
||||||
#elif ARDUINO_ARCH_ESP32
|
#elif ARDUINO_ARCH_ESP32
|
||||||
#define LED_BUILTIN 13
|
#define LED_BUILTIN 13
|
||||||
#include "esp32_platform.h"
|
#include "esp32_platform.h"
|
||||||
#include "knx/bau07B0.h"
|
#include "knx/bau07B0.h"
|
||||||
#include "knx/bau57B0.h"
|
#include "knx/bau57B0.h"
|
||||||
#include "knx/bau091A.h"
|
#include "knx/bau091A.h"
|
||||||
|
void buttonUp();
|
||||||
#elif ARDUINO_ARCH_STM32
|
#elif ARDUINO_ARCH_STM32
|
||||||
#include "stm32_platform.h"
|
#include "stm32_platform.h"
|
||||||
#include "knx/bau07B0.h"
|
#include "knx/bau07B0.h"
|
||||||
|
void buttonUp();
|
||||||
#elif __linux__
|
#elif __linux__
|
||||||
#define LED_BUILTIN 0
|
#define LED_BUILTIN 0
|
||||||
#include "linux_platform.h"
|
#include "linux_platform.h"
|
||||||
@ -28,19 +32,18 @@
|
|||||||
#include "knx/bau07B0.h"
|
#include "knx/bau07B0.h"
|
||||||
#include "knx/bau091A.h"
|
#include "knx/bau091A.h"
|
||||||
#include "knx/bau2920.h"
|
#include "knx/bau2920.h"
|
||||||
|
void buttonUp();
|
||||||
#else
|
#else
|
||||||
#define LED_BUILTIN 0
|
#define LED_BUILTIN 0
|
||||||
#include "cc1310_platform.h"
|
#include "cc1310_platform.h"
|
||||||
#include "knx/bau57B0.h"
|
|
||||||
#include "knx/bau27B0.h"
|
#include "knx/bau27B0.h"
|
||||||
#include "knx/bau07B0.h"
|
#include "knx/bau07B0.h"
|
||||||
#include "knx/bau091A.h"
|
|
||||||
#include "knx/bau2920.h"
|
#include "knx/bau2920.h"
|
||||||
|
extern void buttonUp();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void buttonUp();
|
|
||||||
typedef uint8_t* (*SaveRestoreCallback)(uint8_t* buffer);
|
typedef uint8_t* (*SaveRestoreCallback)(uint8_t* buffer);
|
||||||
|
|
||||||
template <class P, class B> class KnxFacade : private SaveRestore
|
template <class P, class B> class KnxFacade : private SaveRestore
|
||||||
{
|
{
|
||||||
friend void buttonUp();
|
friend void buttonUp();
|
||||||
@ -365,8 +368,6 @@ template <class P, class B> class KnxFacade : private SaveRestore
|
|||||||
#else
|
#else
|
||||||
#error Mask version not supported on ARDUINO_ARCH_STM32
|
#error Mask version not supported on ARDUINO_ARCH_STM32
|
||||||
#endif
|
#endif
|
||||||
#elif __linux__
|
#else // Non-Arduino platforms and Linux platform
|
||||||
// no predefined global instance
|
|
||||||
#else // Non-Arduino platforms
|
|
||||||
// no predefined global instance
|
// no predefined global instance
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user