mirror of
https://github.com/thelsing/knx.git
synced 2025-07-30 13:46:26 +02:00
Add defines for LED, button and serial port
To make supporting different board layouts easier, this introduces some new defines: For all platforms: - `KNX_LED` - the programming LED, defaults to `LED_BUILTIN` - `KNX_BUTTON` - the programming button, defaults to `0` For Arduino platforms: - `KNX_DEBUG_SERIAL` - the serial port that is used for debugging, defaults to `Serial` - `KNX_SERIAL` - the serial port used for communication with the TPUART, default depends on platform
This commit is contained in:
parent
bd907c242d
commit
b718295423
@ -7,7 +7,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef KNX_NO_PRINT
|
||||
Stream* ArduinoPlatform::SerialDebug = &Serial;
|
||||
Stream* ArduinoPlatform::SerialDebug = &KNX_DEBUG_SERIAL;
|
||||
#endif
|
||||
|
||||
ArduinoPlatform::ArduinoPlatform() : _knxSerial(nullptr)
|
||||
@ -22,13 +22,13 @@ void ArduinoPlatform::fatalError()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
#ifdef LED_BUILTIN
|
||||
#ifdef KNX_LED
|
||||
static const long LED_BLINK_PERIOD = 200;
|
||||
|
||||
if ((millis() % LED_BLINK_PERIOD) > (LED_BLINK_PERIOD / 2))
|
||||
digitalWrite(LED_BUILTIN, HIGH);
|
||||
digitalWrite(KNX_LED, HIGH);
|
||||
else
|
||||
digitalWrite(LED_BUILTIN, LOW);
|
||||
digitalWrite(KNX_LED, LOW);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,10 @@
|
||||
|
||||
#include "Arduino.h"
|
||||
|
||||
#ifndef KNX_DEBUG_SERIAL
|
||||
#define KNX_DEBUG_SERIAL Serial
|
||||
#endif
|
||||
|
||||
class ArduinoPlatform : public Platform
|
||||
{
|
||||
public:
|
||||
|
@ -6,9 +6,13 @@
|
||||
|
||||
#include "knx/bits.h"
|
||||
|
||||
#ifndef KNX_SERIAL
|
||||
#define KNX_SERIAL Serial1
|
||||
#endif
|
||||
|
||||
Esp32Platform::Esp32Platform()
|
||||
#ifndef KNX_NO_DEFAULT_UART
|
||||
: ArduinoPlatform(&Serial1)
|
||||
: ArduinoPlatform(&KNX_SERIAL)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
@ -55,10 +59,10 @@ void Esp32Platform::setupMultiCast(uint32_t addr, uint16_t port)
|
||||
{
|
||||
IPAddress mcastaddr(htonl(addr));
|
||||
|
||||
Serial.printf("setup multicast addr: %s port: %d ip: %s\n", mcastaddr.toString().c_str(), port,
|
||||
KNX_DEBUG_SERIAL.printf("setup multicast addr: %s port: %d ip: %s\n", mcastaddr.toString().c_str(), port,
|
||||
WiFi.localIP().toString().c_str());
|
||||
uint8_t result = _udp.beginMulticast(mcastaddr, port);
|
||||
Serial.printf("result %d\n", result);
|
||||
KNX_DEBUG_SERIAL.printf("result %d\n", result);
|
||||
}
|
||||
|
||||
void Esp32Platform::closeMultiCast()
|
||||
@ -83,7 +87,7 @@ int Esp32Platform::readBytesMultiCast(uint8_t * buffer, uint16_t maxLen)
|
||||
|
||||
if (len > maxLen)
|
||||
{
|
||||
Serial.printf("udp buffer to small. was %d, needed %d\n", maxLen, len);
|
||||
KNX_DEBUG_SERIAL.printf("udp buffer to small. was %d, needed %d\n", maxLen, len);
|
||||
fatalError();
|
||||
}
|
||||
|
||||
|
@ -7,9 +7,13 @@
|
||||
|
||||
#include "knx/bits.h"
|
||||
|
||||
#ifndef KNX_SERIAL
|
||||
#define KNX_SERIAL Serial
|
||||
#endif
|
||||
|
||||
EspPlatform::EspPlatform()
|
||||
#ifndef KNX_NO_DEFAULT_UART
|
||||
: ArduinoPlatform(&Serial)
|
||||
: ArduinoPlatform(&KNX_SERIAL)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
@ -55,10 +59,10 @@ void EspPlatform::setupMultiCast(uint32_t addr, uint16_t port)
|
||||
_multicastPort = port;
|
||||
IPAddress mcastaddr(_multicastAddr);
|
||||
|
||||
Serial.printf("setup multicast addr: %s port: %d ip: %s\n", mcastaddr.toString().c_str(), port,
|
||||
KNX_DEBUG_SERIAL.printf("setup multicast addr: %s port: %d ip: %s\n", mcastaddr.toString().c_str(), port,
|
||||
WiFi.localIP().toString().c_str());
|
||||
uint8 result = _udp.beginMulticast(WiFi.localIP(), mcastaddr, port);
|
||||
Serial.printf("result %d\n", result);
|
||||
KNX_DEBUG_SERIAL.printf("result %d\n", result);
|
||||
}
|
||||
|
||||
void EspPlatform::closeMultiCast()
|
||||
@ -83,7 +87,7 @@ int EspPlatform::readBytesMultiCast(uint8_t * buffer, uint16_t maxLen)
|
||||
|
||||
if (len > maxLen)
|
||||
{
|
||||
Serial.printf("udp buffer to small. was %d, needed %d\n", maxLen, len);
|
||||
KNX_DEBUG_SERIAL.printf("udp buffer to small. was %d, needed %d\n", maxLen, len);
|
||||
fatalError();
|
||||
}
|
||||
|
||||
|
@ -48,13 +48,20 @@
|
||||
#else
|
||||
#if !defined(LED_BUILTIN)
|
||||
#define LED_BUILTIN 5 // see GPIO_PinConfig gpioPinConfigs[]
|
||||
#endif
|
||||
#endif
|
||||
#include "cc1310_platform.h"
|
||||
#ifndef KNX_NO_AUTOMATIC_GLOBAL_INSTANCE
|
||||
extern void buttonUp();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef KNX_LED
|
||||
#define KNX_LED LED_BUILTIN
|
||||
#endif
|
||||
#ifndef KNX_BUTTON
|
||||
#define KNX_BUTTON 0
|
||||
#endif
|
||||
|
||||
typedef const uint8_t* (*RestoreCallback)(const uint8_t* buffer);
|
||||
typedef uint8_t* (*SaveCallback)(uint8_t* buffer);
|
||||
typedef void (*IsrFunctionPtr)();
|
||||
@ -405,8 +412,8 @@ template <class P, class B> class KnxFacade : private SaveRestore
|
||||
ProgLedOnCallback _progLedOnCallback = 0;
|
||||
ProgLedOffCallback _progLedOffCallback = 0;
|
||||
uint32_t _ledPinActiveOn = LOW;
|
||||
uint32_t _ledPin = LED_BUILTIN;
|
||||
uint32_t _buttonPin = 0;
|
||||
uint32_t _ledPin = KNX_LED;
|
||||
uint32_t _buttonPin = KNX_BUTTON;
|
||||
SaveCallback _saveCallback = 0;
|
||||
RestoreCallback _restoreCallback = 0;
|
||||
volatile bool _toggleProgMode = false;
|
||||
|
@ -43,10 +43,13 @@ A RAM-buffered Flash can be use by defining USE_RP2040_LARGE_EEPROM_EMULATION
|
||||
#error "KNX_FLASH_OFFSET must be multiple of 4096"
|
||||
#endif
|
||||
|
||||
#ifndef KNX_SERIAL
|
||||
#define KNX_SERIAL Serial1
|
||||
#endif
|
||||
|
||||
RP2040ArduinoPlatform::RP2040ArduinoPlatform()
|
||||
#ifndef KNX_NO_DEFAULT_UART
|
||||
: ArduinoPlatform(&Serial1)
|
||||
: ArduinoPlatform(&KNX_SERIAL)
|
||||
#endif
|
||||
{
|
||||
#ifndef USE_RP2040_EEPROM_EMULATION
|
||||
|
@ -12,9 +12,13 @@
|
||||
#error "KNX_FLASH_SIZE must be multiple of 1024"
|
||||
#endif
|
||||
|
||||
#ifndef KNX_SERIAL
|
||||
#define KNX_SERIAL Serial1
|
||||
#endif
|
||||
|
||||
SamdPlatform::SamdPlatform()
|
||||
#ifndef KNX_NO_DEFAULT_UART
|
||||
: ArduinoPlatform(&Serial1)
|
||||
: ArduinoPlatform(&KNX_SERIAL)
|
||||
#endif
|
||||
{
|
||||
#ifndef USE_SAMD_EEPROM_EMULATION
|
||||
|
@ -4,9 +4,13 @@
|
||||
#include <EEPROM.h>
|
||||
#include "knx/bits.h"
|
||||
|
||||
#ifndef KNX_SERIAL
|
||||
#define KNX_SERIAL Serial2
|
||||
#endif
|
||||
|
||||
Stm32Platform::Stm32Platform()
|
||||
#ifndef KNX_NO_DEFAULT_UART
|
||||
: ArduinoPlatform(&Serial2)
|
||||
: ArduinoPlatform(&KNX_SERIAL)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
@ -44,7 +48,7 @@ uint8_t * Stm32Platform::getEepromBuffer(uint16_t size)
|
||||
_eepromPtr = new uint8_t[size];
|
||||
eeprom_buffer_fill();
|
||||
for (uint16_t i = 0; i < size; ++i)
|
||||
_eepromPtr[i] = eeprom_buffered_read_byte(i);
|
||||
_eepromPtr[i] = eeprom_buffered_read_byte(i);
|
||||
}
|
||||
|
||||
return _eepromPtr;
|
||||
|
Loading…
Reference in New Issue
Block a user