knx/src/knx/config.h
2024-08-17 00:46:23 +02:00

101 lines
2.8 KiB
C

#pragma once
#ifndef NO_KNX_CONFIG
#ifdef ARDUINO_ARCH_SAMD
#define SPI_SS_PIN 10
#define GPIO_GDO2_PIN 9
#define GPIO_GDO0_PIN 7
#else // Linux Platform (Raspberry Pi)
#define SPI_SS_PIN 8 // GPIO 8 (SPI_CE0_N) -> WiringPi: 10 -> Pin number on header: 24
#define GPIO_GDO2_PIN 25 // GPIO 25 (GPIO_GEN6) -> WiringPi: 6 -> Pin number on header: 22
#define GPIO_GDO0_PIN 24 // GPIO 24 (GPIO_GEN5) -> WiringPi: 5 -> Pin number on header: 18
#endif
// Normal devices
// TP1: 0x07B0
// RF: 0x27B0
// IP: 0x57B0
//#define MASK_VERSION 0x07B0
//#define MASK_VERSION 0x27B0
//#define MASK_VERSION 0x57B0
// Couplers
// IP/TP1: 0x091A
// TP1/RF: 0x2920
//#define MASK_VERSION 0x091A
//#define MASK_VERSION 0x2920
// Data Linklayer Driver Options
#if MASK_VERSION == 0x07B0
#ifndef USE_IP
#define USE_IP
#endif
#endif
#if MASK_VERSION == 0x27B0
#ifndef USE_RF
#define USE_RF
#endif
#endif
#if MASK_VERSION == 0x57B0
#ifndef USE_IP
#define USE_IP
#endif
#endif
#if MASK_VERSION == 0x091A
#ifndef USE_TP
#define USE_TP
#endif
#ifndef USE_IP
#define USE_IP
#endif
#endif
#if MASK_VERSION == 0x2920
#ifndef USE_TP
#define USE_TP
#endif
#ifndef USE_RF
#define USE_RF
#endif
#endif
// cEMI options
//#define USE_USB
//#define USE_CEMI_SERVER
#if defined(USE_USB) || defined(KNX_TUNNELING)
#ifndef USE_CEMI_SERVER
#define USE_CEMI_SERVER
#endif
#endif
#if defined(KNX_TUNNELING)
#ifndef USE_IP
#define USE_IP
#endif
#endif
// KNX Data Secure Options
// Define via a compiler -D flag if required
// #define USE_DATASECURE
// option to have GroupObjects (KO in German) use 8 bytes mangement information RAM instead of 19 bytes
// see knx-demo-small-go for example
// this option might be also set via compiler flag -DSMALL_GROUPOBJECT if required
//#define SMALL_GROUPOBJECT
// Some defines to reduce footprint
// Do not perform conversion from KNXValue(const char*) to other types, it mainly avoids the expensive strtod
//#define KNX_NO_STRTOx_CONVERSION
// Do not print messages
//#define KNX_NO_PRINT
// Do not use SPI (Arduino variants)
//#define KNX_NO_SPI
// Do not use the default UART (Arduino variants), it must be defined by ArduinoPlatform::knxUart
// (combined with other flags (HWSERIAL_NONE for stm32) - avoid allocation of RX/TX buffers for all serial lines)
//#define KNX_NO_DEFAULT_UART
#endif