* 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>
* 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>
* 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 %
* 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>
* 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
* Made the rx loop shorter to avoid tx buffer saturation.
* sendSingleFrameByte return false on last byte
* sendSingleFrameByte return false on last byte
* * 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
* 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
* 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...)
* Add KNX_NO_DEFAULT_UART to avoid default uart assignation for ArduinoPlatforms and derivatives, with associated defines (HWSERIAL_NONE for stm32) to recover RAM from unused RX/TX buffers
Remove ArduinoPlatform(HardwareSerial* knxSerial) constructor, seems not useable by KnxFacade
* Restore ArduinoPlatform::ArduinoPlatform(HardwareSerial* knxSerial) constructor
* revert xxxPlatform(HardwareSerial* s) constructors