* Return if Value was Changed
* Always Set the First Value
* Copy on Changes Only
* Make Comparison Independent of Sending
* Extend Doc of `valueNoSendCompare(..)`; Add Note for using `valueNoSend(..)`
- old implementation is still there for compatibility reasons
- new implementation reflects the case "uninitialized while transmitting"
- Just states "Updated", "WriteRequest" and "Ok" remove uninitialized state
For performace reasons, the calls in the actual link layer is only activated when KNX_ACTIVITYCALLBACK is defined.
There is now a DataLinkLayerCallback class where a specific Bau *can* inherit from and - if the specific link layer supports it, pass itself to that linklayer(s).
It includes also some optimizations for KNX-IP in general.
Squashed commit of the following:
commit 14bf9bef25ccc2c9bddefe7c8f1e0f6b1d63b3bc
Author: Ing-Dom <dom@ing-dom.de>
Date: Sun Dec 24 10:17:05 2023 +0100
clean up, remove KNX_LOG_IP
commit 57223e46e414010662772989c2520cf1960ed268
Merge: 2911448 a870dd8
Author: Ing-Dom <dom@ing-dom.de>
Date: Sun Dec 24 10:10:19 2023 +0100
Merge remote-tracking branch 'remotes/origin/master' into rp2040_ip
commit 2911448d22a454aacae472762677381acce6a159
Merge: 8ac6aec 3c29d16
Author: Dom <dom@ing-dom.de>
Date: Wed Dec 20 10:04:32 2023 +0100
Merge pull request #13 from OpenKNX/fix_serialnumber
Fix serialnumber
commit 8ac6aeccce20a9e5e1bbf5300008a72383f7ee71
Author: Ing-Dom <dom@ing-dom.de>
Date: Thu Dec 14 12:28:02 2023 +0100
fix macAddress reading for Wifi
commit 9db2cd58708e9d7bbfd485ada2ff38c829447c42
Author: Ing-Dom <dom@ing-dom.de>
Date: Tue Dec 12 13:08:53 2023 +0100
remove LARGE_BUFFERS and clean up header files of ETHERNET_GENERIC
commit 2f229ae90c6f72e01c2a9b9efe134f75fc85547c
Author: Ing-Dom <dom@ing-dom.de>
Date: Tue Dec 12 00:56:32 2023 +0100
temporary fix, solution needed for tunneling
commit f6e7e619a454f43db10e644b41c58b43a1a2b453
Author: Ing-Dom <dom@ing-dom.de>
Date: Mon Dec 11 13:54:26 2023 +0100
unified approach for different ip stacks with rp2040 plattform
commit 4723edab84986bca6d31ea7b3083b1b7b8ef907e
Author: Marco Scholl <develop@marco-scholl.de>
Date: Mon Dec 11 08:34:25 2023 +0100
wip
commit 5bf3e615c8649dd9c34be7b1fe6ad4062ce96c34
Author: Ing-Dom <dom@ing-dom.de>
Date: Thu Dec 7 14:53:42 2023 +0100
ip and not ip in one rp2040 plattform
commit aaca34a237686c5389888b7bd040b860331bdbff
Merge: fd97f59 d44606d
Author: Dom <dom@ing-dom.de>
Date: Wed Dec 6 15:30:17 2023 +0100
Merge branch 'thelsing:master' into rp2040_lwip
commit fd97f5920ef486ca955f5425cbcaec062e3ef977
Author: Marco Scholl <develop@marco-scholl.de>
Date: Thu Nov 30 23:19:13 2023 +0100
dd sime ifdef to allow build without ip interface
commit c665a79db9cee7063dd77a155108633db81ef8e8
Author: Ing-Dom <dom@ing-dom.de>
Date: Tue Nov 14 10:03:48 2023 +0100
stub for handling SearchRequestExt to prevent console messages
commit 50745be66681616681f67d7bdf17008f5d19640d
Author: Ing-Dom <dom@ing-dom.de>
Date: Tue Nov 14 00:02:49 2023 +0100
adding ip support for rp2040 plattform
- all DPT9 numbers of the form (2^n)/100, n>10 (first value is 20.48) were converted to a payload of 0
- in other words: 20.48; 40.96; 81.92; etc. were send as 0!
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