Commit Graph

476 Commits

Author SHA1 Message Date
ali esmaeilpour
083d83f777
Add float type for parameters & a few fixes (#95)
* Fix not-relative include

throws if a include directory is not set.

* add forgotten defined() in environment checking '#elif's

* fix mis-spelled "config.j"

* Add float type support to Parameters

All 3 encodings supported.

* Using dptconvert functions to handle parameters handling
2020-11-11 22:55:35 +01:00
Thomas Kunze
c167305a87 set valid default value for routing count 2020-11-11 22:51:23 +01:00
Thomas Kunze
c3d7f3e190 fix path for Readme.md 2020-11-11 22:48:04 +01:00
nanosonde
d90843ba45
Add support for CC1310 platform based on SimpleLink SDK (#94)
* Initial commit

* Clean up

* Remove display code

* Change cmake build

* Add SimpleLink SDK for CC13xx/CC26xx as submodule

* Remove commented line from build.sh

* Working build

* Remove SDK submodule

* Squashed 'examples/knx-cc1310/coresdk_cc13xx_cc26xx/' content from commit 0d78d32

git-subtree-dir: examples/knx-cc1310/coresdk_cc13xx_cc26xx
git-subtree-split: 0d78d3280357416a5c0388148cda13717c9ffaa5

* Add more comments and enable Power_idleFunc() for NoRTOS variant.
Internal SDK driver functions which have to wait for something
will cause Power_idleFunc to be called instead of doing busy wait.

* Move CC1310 platform init around

* Optimize a bit more in debug build config as the binary does not fit into 128Kb flash otherwise.

* Explicitly list each source/header file in build config. Use linker group to resolve circular dependencies.

* Ignore vscode settings.json

* Increase stacks size

* Only compile CC1310 source code if #define DeviceFamily_CC13X0

* initial commit of CC1310 RF driver with first working RX version

* Better handling of buttonUp() across platforms

* Start cleanup

* continue cleanup

* Fix bau2920 compilation

* Continue cleanup

* Fix compilation in other examples

* Fix compilation

* htons() and ntohs() only for SAMD and STM32, but not for Linux and ESP8266 and ESP32

* htons(9 and ntohs() needed for CC13x0

* Continue cleanup

* Add CC1310 platform to CI

* Fix CI

* Use more recent toolchain from ARM

* Fix travis

* Use Ubuntu Focal

* Fix toolchain for travis

* Fix package name

* Fix toolchain

* Add libstdc++-dev package

* Add newlib packages

* Remove commented commands from CI

* Fix travis

* Fix compilation of knxPython

* Clean up linefeeds

* Fix RX callback

* Move RF CRC16-DNP to bits.cpp

* Fix TX

* Optimization: do not calc CRC for block1 again in rf_data_link_layer

* Make newline optional in printHex

* Cleanup. First working version: ETS5 programming of individual address via KNX/RF coupler.

* Use LEDs and Buttons to control ProgMode and Flash Erase

* Remove settings.json (VScode)

* Add README.md

* Update README.md

* Update README.md

* Fix typo
2020-11-10 21:52:38 +01:00
Dominik Westner
5451235368
Nikwest (#100)
* fixed tipo: RepititionAllowed

* fixed typo: frameRecieved

* fixed typo: individualAddressDuplication

* fixed typo: induvidualAddress

* fixded Typo: InduvidualAddress

Co-authored-by: Dominik Westner <nikwest@github.com>
2020-11-09 20:20:21 +01:00
thelsing
ffa2eea65b
Update .travis.yml 2020-10-29 20:24:35 +01:00
thelsing
ca79c4ed35
Update .travis.yml 2020-10-29 00:10:38 +01:00
Thomas Kunze
87a495bf7a replace gmtime with gmtime_r 2020-10-28 22:45:35 +01:00
Thomas Kunze
edb9b6b526 change cmake file for travis 2020-10-28 21:46:08 +01:00
Thomas Kunze
d153825f2e fix knxPython build 2020-10-28 21:44:01 +01:00
Thomas Kunze
06e2c11d96 clean up visual studio files and add root cmake 2020-10-28 21:35:24 +01:00
Thomas Kunze
f677897337 Merge commit 'f34e604d3b4bee5339ec4e9c9f36619b17f52e32' as 'examples/knxPython/pybind11' 2020-10-28 21:09:58 +01:00
Thomas Kunze
f34e604d3b Squashed 'examples/knxPython/pybind11/' content from commit 59a2ac27
git-subtree-dir: examples/knxPython/pybind11
git-subtree-split: 59a2ac2745d8a57ac94c6accced73620d59fb844
2020-10-28 21:09:58 +01:00
Thomas Kunze
54e3f6cb12 remove pybind11 to readd as subtree 2020-10-28 21:09:35 +01:00
thelsing
e0bb23cd3f
Create codeql-analysis.yml 2020-10-01 13:11:40 +02:00
Nicolas Robadey
241e04330d
Datapoints ending in .0 are invalid (#91)
Change the datapoints types to 1.1, 1.2 or 1.3 to match the requirements (no dpt *.0) in dpt.cpp
2020-09-29 12:46:09 +02:00
nanosonde
aabc61dc3b
Add UART support for Linux platform to use TP1 KNX transceivers (#88)
* Add inital serial port support for Linux platform

* Add missing print implementation for uint64_t and enable mask 07B0 for Linux platform using TPUART

* Create executable per mask

* Add one executable per mask for coupler
2020-09-11 13:32:29 +02:00
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