with start = 0 (read the number of current elements) and current elements = 0 (empty property) 0 was returned which results in an error message when reading this property.
* add commitNonVolatileMemory overload to batch write chars n times to flash
* changed uint8_t getEepromBuffer(uint16_t size) to uint8_t getEepromBuffer(uint32_t size) to allow eeprom > 65k
* reworked PR #230
* reimplemented binary search for translateAsap()
- new prepareBinarySearch() after association_table change
- fallback to linear search if ETS does not provide sorted ASAP entries
- activated with #define BIN_SEARCH
* added required comments to explain algorithm
Co-authored-by: Waldemar Porscha <wp@porscha.eu>
* #175
added a binary search for address and assoc table
can be enabled by defining USE_BINSEARCH
* Corrected BIN_SEARCH
* AddressTableObject::contains minimal improve
* Review: changed ntohs to htons
* corrected byte order during access to sorted array
Co-authored-by: SirSydom <com@sirsydom.de>
Co-authored-by: Waldemar Porscha <wp@porscha.eu>
* RP2040 EEPROM/Flash compiler flag fix
only check flash size if Flash is used, not EEPROM
* RP2040 EEPROM/Flash compiler flag fix
use EEPROM emulation as default to allow build of the knx-demo (memory.h defines EEPROM size 1024 which doesn't work with Flashsize 4k)
* Update rp2040_arduino_platform.h
* 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
* GD32 flash workaround
Addressing #181
At least some GD32 devices seem to require unlocking the flash twice. As the unlock function exits with `HAL_OK` if the flash is already unlocked, STM32 devices can run the same code without issues.
* Add H8I8O and H8C09 configurations to knx-demo
Addressing #181
These configurations both serve as examples for the use of these boards and other custom boards that don't use the standard pinout.
* Add STM32 unlock target
This copies the brute force unlock approach by @pavkriz into a custom target. With this commit, it is possible to automatically unlock e.g. a H8I8O board without leaving the PlatformIO IDE.
See #181
* Update stm32_platform.cpp
Addresses a side effect of https://github.com/thelsing/knx/pull/177, which causes the eeprom buffer to be overwritten every time getEepromBuffer is called. This prevented programming of STM32 boards as their initial bus address was lost before programming.
* progbutton fix
* Update stm32_platform.cpp
Addresses a side effect of https://github.com/thelsing/knx/pull/177, which causes the eeprom buffer to be overwritten every time getEepromBuffer is called. This prevented programming of STM32 boards as their initial bus address was lost before programming.
* Update knx_facade.h
Remove superfluous attribute _buttonPinInterruptOn
* Update knx_facade.h
attachInterrup on CHANGE for progbutton detection
* Update stm32_platform.cpp
Addresses a side effect of https://github.com/thelsing/knx/pull/177, which causes the eeprom buffer to be overwritten every time getEepromBuffer is called. This prevented programming of STM32 boards as their initial bus address was lost before programming.
* Code style fix
- happens just with large applications
- occured mainly on SAMD platform
- new crc16ccitt algorithm without additional buffer
- reorder groupObjTable in memory for less fragmentation
Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>