Commit Graph

360 Commits

Author SHA1 Message Date
Ing-Dom
311abdd88f redesigned the activitycallback without using the facade and with a more flexible approach.
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).
2023-12-25 16:34:40 +01:00
Ing-Dom
470ec8b521 this adds IP (WiFi and wired Ethernet) support to the rp2040 platform.
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
2023-12-24 10:20:23 +01:00
Marco Scholl
3c29d16450 fix IndividualAddressSerialNumberReadResponse 2023-12-20 09:35:29 +01:00
Marco Scholl
38300f7e0d Revert "fix serialNumberReadResponse"
This reverts commit 9f28f8efd2.
2023-12-20 09:24:29 +01:00
Ing-Dom
53842ad0c5 Add the possibility to have a callback function signaling knx activity (for e.g. flashing LEDs)
Can be enabled with KNX_ACTIVITYCALLBACK

# Conflicts:
#	src/knx/ip_data_link_layer.cpp
2023-12-17 14:53:50 +01:00
thewhobox
9f28f8efd2 fix serialNumberReadResponse 2023-12-01 20:25:58 +01:00
Marco Scholl
354e5f56bb remove byteorder macros for rp2040 platform as they are already included in lwip 2023-10-25 13:03:17 +02:00
Marco Scholl
f89a3919e4 increase kFunctionPropertyResultBufferMaxSize to 0xFF 2023-09-14 19:55:20 +02:00
Marco Scholl
3202b33fcb
add support for external flash system by using callbacks 2023-08-25 22:42:32 +02:00
Waldemar Porscha
fd952c817e soved merge problem 2023-08-24 10:49:55 +02:00
Waldemar Porscha
a5c79214e3 Improved float16ToPayload correction 2023-08-24 10:43:21 +02:00
Waldemar Porscha
9c4e5d259a FIX: float16ToPayload
- 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!
2023-08-22 11:28:10 +02:00
thelsing
6dda682fa7
Merge pull request #253 from OpenKNX/feature/dpt-14-80
Add Support for DPT 14.080 (`DPT_Value_ApparentPower`)
2023-08-09 10:28:38 +02:00
thelsing
69d553df9c
Merge pull request #254 from OpenKNX/fix/dptconvert-8.010-to-busvalue
Fix: Conversion of DPT8.010 to Bus
2023-08-09 10:28:25 +02:00
Marco Scholl
2934782d3c
fix: check initalize AssociationTableData 2023-08-06 18:19:17 +02:00
Cornelius Köpp
efbbb52717 Fix: Writing Both Bytes of DPT8.010 to Bus 2023-08-02 23:01:14 +02:00
thelsing
f7ac39c66f
Merge pull request #251 from OpenKNX/fix_data_property_read_idx0
fixed wrong answers to property read
2023-07-13 11:08:46 +02:00
thelsing
aa57fdf482
Merge pull request #252 from OpenKNX/fix-buffer-overflow
Fix buffer overflow
2023-07-13 11:08:11 +02:00
Cornelius Köpp
3c2a371711 Add DPT 14.080 (DPT_Value_ApparentPower) 2023-07-02 14:04:32 +02:00
Waldemar Porscha
09985ea793 FIX: Allow setting of EOPR_TIMEOUT from pio.ini 2023-06-30 21:23:44 +02:00
John Doe
a5ba7bcd5e fixed wrong answers to property read:
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.
2023-06-26 10:15:51 +02:00
Waldemar Porscha
f8bd27b4b5 allow user defined OVERRUN_COUNT
reset _savedAsapXXX always to 0
2023-06-18 14:06:41 +02:00
thelsing
48000b25aa
Merge pull request #250 from Maggyver/master
New PlatformIO Build Flags "KNX_LED_ACTIVE_ON" , default is low
2023-06-16 11:18:38 +02:00
thelsing
494c76c7d8
Merge pull request #249 from OpenKNX/fix-tpuart-error
fix #247 - TPUART Error Message
2023-06-16 11:18:10 +02:00
thewhobox
e1596ebaf4 fix wrong functionPropertyState handling 2023-06-14 21:30:27 +02:00
Mike
c5fc04c487 fix-tpuart-error 2023-06-13 11:21:48 +02:00
Maggyver
90cafdbd01
New PlatformIO Build Flags "KNX_LED_ACTIVE_ON" , default is low 2023-06-11 14:38:40 +02:00
thelsing
245b82e627
Merge pull request #246 from OpenKNX/fix-reset-chip
fix: reset chip blocks
2023-05-29 19:10:34 +02:00
thewhobox
338aa1b825 fix reset chip 2023-05-28 12:06:55 +02:00
Ing-Dom
b088ffe10d Rename function for better understanding, fix inverse logic 2023-05-27 13:55:11 +02:00
Ing-Dom
49ae48eacb some minor improvements from first code review 2023-05-26 12:48:50 +02:00
Ing-Dom
1f3a5fe5a9 improve the implementation of the 50 packet / second limit
delay knx.loop by 20ms has ugly side effects.
count the frames in 100ms chunks to allow more than 5 packets per 100ms
drop packet if over the limit.
2023-05-26 11:26:33 +02:00
thelsing
4cdf6d4ffe
Merge pull request #244 from OpenKNX/hotfix-uninitialized-asap
Hotfix: remove of _savedAsapXXX = 0
2023-05-13 10:07:22 +02:00
Waldemar Porscha
5abd3d4408 Hotfix: remove of _savedAsapXXX = 0 2023-05-13 01:11:34 +02:00
thelsing
e4bb3e1c59
Merge pull request #243 from OpenKNX/support-samd-flash-offset
support KNX_FLASH_OFFSET on samd
2023-05-07 20:29:12 +02:00
Marco Scholl
2b8ad2f1ad support KNX_FLASH_OFFSET on samd 2023-05-07 11:52:39 +02:00
thewhobox
859b50eff6 functionproperty respond only if handled 2023-05-06 20:53:06 +02:00
mumpf
d52df6d584
fix: prevent use of uninitialized _savedAsapXXX variables (#241)
- src/knx/application_layer.h: Initialize _savedAsapXXX
- src/knx/application_layer.cpp: prevent xxxConfirm-Calls if _savedAsapXXX values are 0

Co-authored-by: Waldemar Porscha <wp@porscha.eu>
2023-05-05 00:42:28 +02:00
Mike
0d140a5182
Added FunctionProperty Callback (#238)
* add commitNonVolatileMemory overload to batch write chars n times to flash

* added functionproperty callback

* added function property state

* fixed function data length

* removed ifdef and fixed missing references

* added adc response

* fix

* fixed ADCResponse

---------

Co-authored-by: Ing-Dom <dom@ing-dom.de>
2023-04-06 15:35:37 +02:00
mobil750
5007462c70
correction for DPT 10.001 TimeOfDay implemented; #define DPT_TimeOfDay Dpt(10, 1, 1) (#237)
extension of dptconvert.cpp to get "tmp.tm_wday = weekDay;" decoded in Struct tm
2023-04-06 12:25:52 +02:00
mumpf
8807780b55
FIX: occasional endless loop (wrong buffer limit) (#234)
Co-authored-by: Waldemar Porscha <wp@porscha.eu>
2023-03-20 14:41:31 +01:00
Dom
4c37c21699
make the Prog Button handling in the knx stack deativateable by pin value <0 (#231) 2023-02-20 14:21:11 +01:00
Dom
dce92403e5
32bit eeprom size (#230)
* 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
2023-02-13 21:39:30 +01:00
mumpf
9894a8c8b8
improved/corrected prog button debouncing (#221)
Co-authored-by: Waldemar Porscha <wp@porscha.eu>
2022-11-25 07:24:27 +01:00
mumpf
b51c5950c5
reimplemented binary search for translateAsap() (#220)
* 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>
2022-11-12 11:23:04 +01:00
mumpf
7bf3696a3b
Feature175 binarysearch (#218)
* #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>
2022-10-21 10:03:11 +02:00
Sonnengruesser
a0134e6cfb
RP2040 EEPROM/Flash compiler flag fix (#216)
* 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
2022-10-15 22:25:22 +02:00
mumpf
5b48f21f53
get rid of some warnings during build (#214)
(comparison between signed and unsigned integer expressions)

Co-authored-by: Waldemar Porscha <wp@porscha.eu>
2022-10-15 22:24:58 +02:00
mumpf
3bf7f5ce48
remove unnecessary print to console (#213)
Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>
2022-07-15 23:11:10 +02:00
Matthias B
8b9ff4fce1
H8I8O (#209)
* 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
2022-06-08 21:13:34 +02:00
rueckix
bd907c242d
Fix prog button handling (#207)
* 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
2022-05-31 07:20:59 +02:00
rueckix
3948045c28
Fix stm32 eeprom handling (#205)
* 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
2022-04-30 22:15:16 +02:00
croghostrider
eb963583ee
Fix last CodeFactor Style issues (#202)
* fix malformed whitespace

* fix trailing spaces 


fix trailing spaces
2022-04-25 20:30:53 +02:00
mumpf
d43703f7bd
Get rid of occsional fails during ETS programming (#200)
- 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>
2022-04-25 19:27:47 +02:00
croghostrider
e12a074e07
Removed redundant declaration (#199)
remove "virtual" where "override" or "final" already implies it.
2022-04-25 11:27:40 +02:00
mumpf
4b8b951be8
FIX issue introduced with #194 (#201)
- if go handler writes to same go, value is not sent to bus anymore

Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>
2022-04-25 11:18:57 +02:00
Simon Billemont
29702f69c3
Fix #191 by initializing the platform pointer in all KnxFacade constructors (#198)
* Fix #191 by initializing the platform pointer in all KnxFacade constructors

* Revert "Fix #191 by initializing the platform pointer in all KnxFacade constructors"

This reverts commit adc05cfaf7.

* Alternative fix for #191 by initializing the platform pointer in KnxFacade(&bau) from the platform stored in bau
2022-04-19 09:51:36 +02:00
Simon Billemont
01979174e3
Fixed accedental swap of size parameter and KNX_FLASH_SIZE define introduced in PR #196 (#197) 2022-04-16 22:16:02 +02:00
Simon Billemont
b0153de97f
Fix issue with Esp8266/Esp32 platform reinitializing EEPROM multiple times causing it to forget staged EEPROM changes (#196) 2022-04-13 09:19:18 +02:00
mumpf
9c620a013d
GroupObjects can communicate internally (#194)
* GroupObjects can communicate internally
- GroupObjects use callback infrastructure also during write to bus
- external and internal write of a GO can be handled identically
- needs #define INTERNAL_GROUPOBJECT

* FIX-Works now also if SMALL_GROUPOBJECT is not set

* Remove #ifdef INTERNAL_GROUPOBJECT

Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>
2022-04-12 00:28:21 +02:00
mumpf
2453c3ce5d
Forgotten init for PR #187 (#195)
Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>
2022-04-06 21:36:36 +02:00
mumpf
22af8267c3
Openknx version support (#190)
* Feature: Allow additional version check on startup
- added versionCheckCallback
- added apiVersion to DeviceObject
- added new versionCheck to memory,cpp

* updated source code formatting

* changes for PR
- (old) version is again part of version check
- naming conventions

* forgotten parameter in callback

* correct wrong buffer initialization

* version <-> apiVersion swapped

Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>
2022-03-02 13:38:30 +01:00
mumpf
a10fa20bde
Feature: additional callbacks for application (#189)
* Feature: additional callbacks for application
- beforeRestart callback
- beforeTablesUnload callback

* naming conventions for PR

Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>
2022-03-01 21:42:03 +01:00
mptei
145c354110
Removed unneded TX_WAIT_ECHO state; fixed echo detection (#188) 2022-03-01 17:30:54 +01:00
mumpf
4f17ed4b5d
Feature: Uninitialized GO handling (#187)
- don't send senseless values on GroupValueRead

Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>
2022-03-01 17:28:11 +01:00
mptei
f4d7f604be
Handling buffer overrun (#184) 2022-02-26 22:41:23 +01:00
SirSydom
1f079147c0
solves #183 (#185)
get the unique id directly from flash instead using the async. SDK call.
2022-02-26 22:40:17 +01:00
mumpf
c47a8b06c8
- Get rid of EEPROM emulation (#186)
- Use SAMD-Flash without copying parameters to RAM

Co-authored-by: Waldemar Porscha <waldemar.porscha@sap.com>
2022-02-26 22:39:21 +01:00
mptei
9c48027d3c
Using defines in ACK handling (#182)
* Using defines in ACK handling

* added newline
2022-02-24 21:23:57 +01:00
SirSydom
d27f420217
solves #178 bugfix when sending frames > 63 byte, missing masking of … (#179)
* solves #178 bugfix when sending frames > 63 byte, missing masking of upper bits after sending a U_DataOffset

* also masked U_L_DATA_END_REQ correctly

* used bit masking instead of %
2022-02-24 10:13:02 +01:00
SirSydom
a306174878
Branch flash pr with large eeprom (#177)
* save WIP on flash api + header reorder

* reduce diffs to master

* added support for RP2040 (Raspberry Pi Pico)

* support DPT9.009 (airflow) and DPT9.029 (absolute humidity)

* added support for RP2040 (Raspberry Pi Pico) (#145)

* worked on flash implementation

* worked on flash implementation

* added malloc for _EraseBlockBuffer, fixed some bugs

* fixed memoryread and crash while loading KOs (+debugstuff)

* some fixes and debugs

* align to pagesize

* clean up debug stuff, comments ...

* added support for both Eeprom and Flash (NvMemoryType) plattforms.

* changed memoryReadIndicationP to memoryReadIndication
added stdlib and defines

* fixed std::min

* another try for fixing the min problem

* rolled back linux plattform to eeprom

* comments only, hints for plattforms

* bugfix when calculating memorywrites over multiple blocks by mumpf

* added support for EEPROM-Emulation / RAM-buffered Flash
improvements in RP2040 plattform

* fixed typo in KNX_FLASH_OFFSET

* - writebuffersize clarified (PR discussion)
- changed alignment from flashpagesize to 32bit
- added override modifier (PR discussion)
- changed comment regarding flash/eeprom functions for plattforms to override/implement (PR discussion)

* resolved CodeFactor issue

Co-authored-by: Thomas Kunze <thomas.kunze@gmx.com>
2022-02-22 14:24:36 +01:00
Michael Geramb
53425e2ef7
Add callback functions for prog mode and improve documentation (#173) 2022-02-19 20:23:50 +01:00
thelsing
d26771c432
Merge pull request #171 from mptei/tx_throttle_rx_wait_addr
More tpuart fixes
2022-02-13 21:56:03 +01:00
SirSydom
2c2d69a396
Rp2040 plattform newcore (#172)
* added support for RP2040 (Raspberry Pi Pico)

* support DPT9.009 (airflow) and DPT9.029 (absolute humidity)

* adapted to work with the latest arduino-pico core V1.11.0
- setPollingMode for knxSerial
2022-02-13 21:54:38 +01:00
Mike Pieper
408cd2bbeb printHex takes to long 2022-02-13 11:22:02 +01:00
Mike Pieper
c908d5dc0a handle all available bytes 2022-02-06 14:13:48 +01:00
Mike Pieper
7d7e6eb3b4 New state RX_L_ADDR; loop load adaption 2022-02-06 07:55:34 +01:00
Mike Pieper
1ee4377e61 tx throttle. 2022-01-22 15:20:27 +01:00
mptei
6720f86e5c
Changed color byte order from WRGB to RGBW (R MSB). (#168) 2022-01-19 14:51:00 +01:00
dev-git-usr
36e0a00e80
Added Datapointtype DPT 7.600 (colortemperature) (#165)
* Added Datapointtype DPT 7.600 (colortemperature)

* Added Decoding of Datatype
2022-01-16 18:56:00 +01:00
mptei
71e8607f43
Added support for DPT 251.600 RGBW (#167)
* Added support for DPT 251.600 RGBW

* style fix
2022-01-16 18:26:51 +01:00
mptei
f5feefb0f2
TPUART: Avoid false EOP (#166)
* Made the rx loop shorter to avoid tx buffer saturation.

* sendSingleFrameByte return false on last byte

* sendSingleFrameByte return false on last byte
2022-01-16 18:25:32 +01:00
croghostrider
bf70e162f8
fix constant comparison (#162)
* fix constant comparison

* .
2021-12-29 17:20:46 +01:00
mptei
12d0ea1ad8
Use full duplex in tpuart_data_link_layer. (#161)
* TPUART full duplex handling

* Stay in loop when RX_L_DATA.
2021-12-28 19:53:48 +01:00
Domos
fb74931bec
Add 2 new methods: paramSignedByte and paramBit. Comments and usage inside code (#159) 2021-12-23 20:04:34 +01:00
mptei
eb7ae16dde
Returning correct value for ULongType. (#157) 2021-12-22 20:00:27 +01:00
mptei
63ff2c5d4d
Removed doubled code (#158) 2021-12-22 19:59:55 +01:00
rueckix
616599cf8b
Fix EEPROM include on STM32 (#151)
The structure of the stm32 arduino core changed (https://github.com/stm32duino/Arduino_Core_STM32/tree/main/libraries/EEPROM/src).
stm32_eeprom.h was moved to a subfolder. Instead, we can now include (and potentially use later), the `EEPROM.h` header.
2021-10-17 18:19:45 +02:00
SirSydom
57b1950e38
support DPT9.009 (airflow) and DPT9.029 (absolute humidity) (#149)
* added support for RP2040 (Raspberry Pi Pico)

* support DPT9.009 (airflow) and DPT9.029 (absolute humidity)
2021-09-22 23:51:21 +02:00
SirSydom
4f6c837b78
added support for RP2040 (Raspberry Pi Pico) (#145) 2021-07-08 19:45:33 +02:00
croghostrider
31e35695e6
fix wrong IP (#142) 2021-06-08 20:27:33 +02:00
croghostrider
59d1b67d6c
add KNX IP discovery support (#141)
for ESP8266 and ESP32
2021-06-04 17:23:23 +02:00
croghostrider
14462d410d
Change individual address (#140)
to 15.15.255
2021-06-02 17:53:46 +02:00
etrinh
75c863bffe
Add new KNX_NO_STRTOx_CONVERSION define for footprint reduction (#137)
* Remove uniqueSerialNumber debug log to reduce footprint

* add KNX_NO_STRTOx_CONVERSION to avoid expensive strtod conversion
2021-05-12 13:03:10 +02:00
OutOfSync1
ed54da7089
fix some typos (#136)
* removed one section that was duplicate in dptconvert.cpp
2021-05-04 16:19:29 +02:00
OutOfSync1
95cf9df7fc
fix userdata saverestore (#133) (#135)
* set saveSize at compile time

* make sure USERDATA_SAVE_SIZE is set to valid value
2021-05-04 16:17:27 +02:00
etrinh
a4e74ebae5
Remove uniqueSerialNumber debug log to reduce footprint (#134) 2021-04-17 11:12:19 +02:00
OutOfSync1
14162fb1a4
fix userdata saverestore (#133)
* * fix for save/restore of userdata

* change declaration of restore() in knx_facade.h to "const uint8_t* restore(const uint8_t* buffer)" to avoid calling default implementation in save_restore.h

* change typedefs to separate SaveCallback and RestoreCallback

* fix BME60 example, knx.setRestoreCallback() needs to use const uint8_t* as well

* fix commitToEeprom for ESP32

* trigger dirty flag for ESP32 to make sure data is committed
2021-04-14 23:46:03 +02:00
OutOfSync1
1343ed0b7d
fixes to enable partial programming (#132)
* fixes to enable partial programming (thanks to mumpf and proggerKA at KNX-UF!)

* add PID_MCB_TABLE to TableObject

* add CallBackProperty to send PID_MCB_TABLE

* calculate crc checksum using Crc16Citt when state switches to LOAD_COMPLETED

* add crc to save(), restore() and saveSize() to save crc to flash

* add CallBackProperty for read and write of PID_PROG_VERSION to ApplicationProgramObject

* create overrides for save, restore, and saveSize in ApplicationProgramObject to save _programVersion to flash

* improve crc calculation

* removed TableObject::crc16Citt method and use the one in bits.h

* do not save crc in flash, instead calculate on-the-fly in CallbackProperty when state==LS_LOADED

* use DataProperty to store PID_PROG_VERSION

* WARNING: segmentSize calculation for crc calculation is currently not correct. Need to somehow access size of data in class that inherits from TableObject (e.g. ApplicationObject or RouterObject)

* fix segment size in TableObject()

* save size after TableObject::allocTable() is called. Also change save() and restore() to save _size to flash. Modify saveSize()

* use _size to calculate crc value in CallbackProperty

* reduce footprint, save 5 byte

* add comment why _size field is needed

* remove PID_MCB_TABLE from RouterObject

* this is now implemented in TableObject
2021-04-14 23:44:12 +02:00
OutOfSync1
e57bbf9dbe
generate unique serial number (#90) (#131)
* generate unique serial number (#90)

* see https://github.com/ricaun/ArduinoUniqueID

* calculated from ESP.getEfuseMac() on ESP32

* ESP.getChipId() on ESP8266

* SERIAL_NUMBER_WORD_0-3 on SAMD

* HAL_GetUIDw0-2() on STM32

* defaults to 0x01020304 on other platforms

* fix variable name for ESP platform

* another fix variable name for ESP platform (need more coffee...)
2021-04-12 11:40:56 +02:00