Commit Graph

509 Commits

Author SHA1 Message Date
nanosonde
77a796a39c
Add coupler support (#79)
* save work.

* save work

* save work

* save work

* save work

* Remember which interface received the cemi frame

* save work

* save work

* save work

* Use default value from PID_ROUTING_COUNT

* Add simple alternative to std::function without smart pointers or move semantics

* Remove include

* Add more comments about cleanup

* save work

* Remove forgotten code.

* Move crc16Ccitt to bits.c as it also used for PID_MCB

* save work

* move comment

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* derive from TableObject instead of InterfaceObject

* save work

* save work

* Fix wrong pointer arithmetic in TableObject

* Filter table setting/clearing

* move comment

* save work

* save work

* save work

* handle SBC on closed media

* save work

* move coupler example to different dir

* Restore device example for linux

* save work

* Remove MEDIUM_TYPE and use MASK_VERSION

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* save work

* Replace MEDIUM_TYPE by MASK_VERSION

* Remove adafruit/travis-ci tests

* Disable travis ci cache for platformio

* Fix missing changes

* Fix cemi server and add missing MASK_VERSION definitions

* Enable platformio caching on travis ci again

* Handle device address update for routing decision

* source address is set in network layer and not in data link layer

* Add remaining APCI types that are used with system broadcast

* Add debug print for routing

* Remove simple_functional

* Fix CMakLists.txt

* Use MASK_VERSION to conditionally compile code.

* Remove fixed version reuqirement from platform esp8266

* Add demo-coupler for MCUs

* Remove simple_functional.h from demo knx-linux

* Enable CI for coupler demos

* Correct path for knx-linux-coupler

* Fix knx_facade.h

* Refactor NetworkLayer to use getInterface() for devices and getPrimaryInterface(), getSecondaryInterface() for couplers

* Add platformio configs for other currently possible mask/platform combinations

* Add class diagrams and remove obsolete includes

* Add some minimal docs
2020-09-06 21:41:34 +02:00
etrinh
52d3866e41
Try fixing a crash due to NULL derefence (#77)
* fix crash due to NULL _sendBuffer

Co-authored-by: etrinh <etrinh@zdionline.net>
2020-07-19 13:37:42 +02:00
thelsing
ffea53614b
Revert last commit. 2020-07-19 13:36:33 +02:00
thelsing
1f918d69c1
fix #78 2020-07-18 13:47:54 +02:00
nanosonde
96884f768e
Add support for KNX data secure (#66)
* initial comic

* save work

* Handle SystemBroadcast and Broadcast for TP and IP

* Rework

* Fix comment

* save work

* save work

* save work

* save work

* save work

* Restore old broadcast structure

* Readd systembroadcast methods

* Make sure that services from SystemBroadcast are also available from Broadcast on closed media

* save work

* Save work

* save work

* Save work

* save work

* save work

* save work

* save work

* save work

* Change maximum number of elements for the key tables, etc.

* save work

* First working seqno sync with ETS

* save work

* save work

* save work

* save work

* save work

* save work

* Remove magic value and add comment

* save work

* Extend restart and masterreset for factory reset

* save work

* First working secure broadcast mode with IA programming

* Add FunctionPropertyExt* AL services

* Fix FunctionPropertyExt*. Working T_DATA_CONNECTED with FunctionPropertyExt*.

* Add PropertyValueExt* AL services. Handle master reset in AL service RESTART.

* Fix FunctionPropertyExtStateRead, fix restart. MILESTONE: Working physical programming of IA and toolkey with confirmed restart. Reading deviceinfos working.

* Handle PDT_CONTROL in FunctionPropertyExt*

* Fix FunctionPropertyExt* and FunctionProperty for PDT_CONTROL

* Change comment.

* save work

* save work

* Add group object security handling

* Move map to own file

* use simple_map

* Include simple_map.h in CmakeFile

* Move code from header to source file

* Remove obsolete code

* MILESTONE: working programming of secure device with IA and tables

* cleanup

* bugfix

* flashSize must be big enough. Security IF object contains a lot more data.

* Merge master into feat_datasecure

* Revert "Merge master into feat_datasecure"

This reverts commit 0c8358692a.

* Revert "Revert "Merge master into feat_datasecure""

This reverts commit aa59253785.

* Bugfixes

* cleanup

* cleanup

* Add printing of uint64_t

* Don't compile secapplayer if data secure not enabled

* pin platform for ESP8266 to specific version

* SecIfObject: save/restore required for persisting STATE. Bugfix: use correct PID for group key table

* Cleanup comment and debug output

* Further cleanup.

* Refactor master reset

* Remove unused IP data link layer test code

* Only reset TOOL kkey to FDSK on factory reset

* Modify .gitignore and remove vscode config file

* Correct comment

* Handle SBC flag (systembroadcast) in SCF field. Couplers between open and closed media need this.

* Remove code that slipped in.
2020-07-06 19:16:54 +02:00
nanosonde
8cfd67662f
Bugfixes for property startIndex 0 and PID_IO_LIST (#75)
* Bugfix for property entry 0 and PID_IO_LIST

* Remove unsused method

* Fix comment and add missing size adjustment in other method

* Callback properties must return valid data on startIndex 0. The return value must contain the actual element count within the property.
2020-07-05 12:11:44 +02:00
thelsing
6cd030203a
Update data_property.cpp 2020-07-03 00:47:29 +02:00
etrinh
fda8e64425
Add support for lambda for more platforms (#74)
* Fix Stm32 Eeprom handler
Fix missing parenthesis
Fix some type consistencies

* Fix #73
Add ability to override config.h with define NO_KNX_CONFIG

* change tabs to space

* coding style

* Allow lambda on platforms which support it, can be forced with HAS_FUNCTIONAL 0/1

* remove automatic detection of functional due to breakage with some platforms:
In file included from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/char_traits.h:39:0,
                 from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/string:40,
                 from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/stdexcept:39,
                 from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/array:39,
                 from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/tuple:39,
                 from /home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/functional:54,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/group_object.h:37,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/group_object_table_object.h:4,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/bau_systemB.h:8,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx/bau07B0.h:4,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx_facade.h:12,
                 from /home/travis/arduino_ide/libraries/Adafruit_Test_Library/src/knx.h:86,
                 from /home/travis/build/thelsing/knx/examples/knx-bme680/knx-bme680.ino:4:
/home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/stl_algobase.h:243:56: error: macro "min" passed 3 arguments, but takes just 2
     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
                                                        ^
/home/travis/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/7-2017q4/arm-none-eabi/include/c++/7.2.1/bits/stl_algobase.h:265:56: error: macro "max" passed 3 arguments, but takes just 2
     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
                                                        ^
To be investigated...

Co-authored-by: etrinh <etrinh@zdionline.net>
2020-07-01 10:39:30 +02:00
etrinh
f880114da5
Stm32 port (#71)
* Fix Stm32 Eeprom handler
Fix missing parenthesis
Fix some type consistencies

* Fix #73
Add ability to override config.h with define NO_KNX_CONFIG

* change tabs to space

* coding style

Co-authored-by: etrinh <etrinh@zdionline.net>
2020-06-30 14:58:53 +02:00
Thomas Kunze
4677044f46 add some fixes and enhancements by leoujz
fix build
2020-06-25 20:36:02 +02:00
Thomas Kunze
87a12fa26a Merge branch 'master' of https://github.com/thelsing/knx 2020-06-24 23:03:21 +02:00
Thomas Kunze
f450d87d05 refactor RfMediumObject to use properties 2020-06-24 23:03:12 +02:00
thelsing
eacc944e7c
remove __has_include because of build failure 2020-06-24 22:14:45 +02:00
thelsing
084657cb7a
fix #46 2020-06-24 18:48:55 +02:00
thelsing
5855f35eef
fix #50 2020-06-23 00:21:00 +02:00
thelsing
d3788d3ee4
Merge pull request #68 from etrinh/master
Merge STM32 platform
2020-06-23 00:15:18 +02:00
thelsing
08957720a3
Update library.properties 2020-06-19 21:57:46 +02:00
thelsing
2ff07d29e3
Update bits.h 2020-06-18 11:26:59 +02:00
nanosonde
cadc6c6124
Refactor broadcast/systembroadcast (#62)
* Add missing source files

* Fix comment

* Refactor Broadcast/SystemBroadcast

* Add empty confirm methods

* Remove unclean solution to suppress warning about unsed var

* Restore old structure

* Fix issues

* Add more missing source files

* Make sure that services from SystemBroadcast are also available from Broadcast on closed media

* Make sure that sent broadcast/systembroadcast frames are always marked as broadcast frames on closed media
2020-06-09 21:06:13 +02:00
thelsing
fa269a259d
Merge pull request #65 from nanosonde/disable_ci_8266
Disable Travis-CI 8266 Arduino test
2020-06-08 18:04:29 +02:00
thelsing
48dd76748c
Merge pull request #64 from nanosonde/feat_funcprop
Add support for Function Properties
2020-06-08 18:03:00 +02:00
nanosonde
d1701db1d1
Disable Travis-CI 8266 Arduino test 2020-06-08 11:43:06 +02:00
Nanosonde
918d3f37c4 Fix compilation. 2020-06-08 11:14:56 +02:00
Nanosonde
86c8f359e3 Add support for Function Properties 2020-06-08 11:04:00 +02:00
thelsing
cc1fc7d5fb
Update .travis.yml 2020-05-08 02:33:53 +02:00
Thomas Kunze
c31053a7fd add pio ignores to gitignore 2020-05-08 02:06:23 +02:00
Thomas Kunze
5f4f86dcbd add platformio file and fix compiling without IP 2020-05-08 01:50:50 +02:00
Thomas Kunze
16de2048e6 Merge branch 'master' of https://github.com/thelsing/knx 2020-05-07 20:15:22 +02:00
Thomas Kunze
c97bcc29f3 comment some debugging code 2020-05-07 20:15:15 +02:00
nanosonde
31319a690b
Fix travis build (#56)
* Disable knx-usb example

* Update python to 3.8

* Enable knx-usb example

* Update to Arduino 1.8.11

* Pin to version 1.8.11

* Use python 3.7

* Use python 3.8 and fix path

* Fix paths and remove obsolete stuff

* Add lib Wire to deps.

* Use Adafruit TinyUSB lib version 0.7.1
2020-05-07 19:35:10 +02:00
etrinh
217794d219 Merge branch 'master' of https://github.com/thelsing/knx 2020-05-02 17:33:54 +02:00
Thomas Kunze
ed5dc73984 fix overrides of bau27b0 2020-05-02 11:43:02 +02:00
etrinh
d789fb1459 Enable TP medium for ESP32 2020-04-07 18:24:28 +02:00
etrinh
0f99a4c969 Fix compilation warning
STM32 uses TP
2020-04-02 22:10:50 +02:00
etrinh
ced8aa0a31 Fix conflicts with STM32 DADDR, knx DADDR rename DEVADDR 2020-04-02 18:25:52 +02:00
etrinh
34df27ee87 fix bad commit 2020-04-02 18:16:15 +02:00
etrinh
147a3942ad Add priliminar Arduino STM32 port 2020-04-02 18:09:53 +02:00
Thomas Kunze
894a54fa7f enable RF and TP 2020-03-12 21:34:00 +01:00
Thomas Kunze
445bf05f93 fix bug in save code 2020-02-11 22:16:59 +01:00
Thomas Kunze
4dda99b341 only add rf props ifdef USE_RF 2020-01-11 21:20:25 +01:00
Thomas Kunze
82f463f965 refactor cemi server object 2019-12-28 10:56:33 +01:00
Thomas Kunze
1465cb558c split USE_USB from USE_CEMI_SERVER 2019-12-28 09:54:02 +01:00
Thomas Kunze
e2fd20ab9a implement knx-ip searchresponse 2019-12-28 00:29:17 +01:00
Thomas Kunze
02a24ea3b8 move #endif 2019-12-27 10:47:22 +01:00
Thomas Kunze
6ae000482f - add some knx-ip classes
- return no data if Property has no elements
- implement get{ipAddress, netmask, defaultGw, macAddress) for linux platform
2019-12-27 02:06:10 +01:00
Thomas Kunze
8f61ef8608 fix length of PDT_VERSION 2019-12-22 17:45:24 +01:00
Thomas Kunze
d3d95f1185 add object for routing indication packet 2019-12-22 17:31:33 +01:00
Thomas Kunze
e788047213 Merge branch 'master' of https://github.com/thelsing/knx 2019-12-21 17:48:54 +01:00
Thomas Kunze
f8e2da00a2 refactor device object, add more const to functions 2019-12-21 17:48:46 +01:00
thelsing
f7de00c1df
Update .travis.yml 2019-12-18 23:05:08 +01:00