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
This commit is contained in:
nanosonde
2020-09-06 21:41:34 +02:00
committed by GitHub
parent 52d3866e41
commit 77a796a39c
83 changed files with 6406 additions and 946 deletions

View File

@@ -2,61 +2,69 @@ cmake_minimum_required(VERSION 2.7)
project(knx-linux)
set(LIBRARIES_FROM_REFERENCES "")
add_executable(knx-linux
../../src/knx/address_table_object.cpp
../../src/knx/address_table_object.h
../../src/knx/address_table_object.cpp
../../src/knx/address_table_object.h
../../src/knx/aes.c
../../src/knx/aes.h
../../src/knx/aes.hpp
../../src/knx/apdu.cpp
../../src/knx/apdu.h
../../src/knx/application_layer.cpp
../../src/knx/application_layer.h
../../src/knx/application_program_object.cpp
../../src/knx/application_program_object.h
../../src/knx/association_table_object.cpp
../../src/knx/association_table_object.h
../../src/knx/bau.cpp
../../src/knx/bau.h
../../src/knx/bau07B0.cpp
../../src/knx/bau07B0.h
../../src/knx/bau27B0.cpp
../../src/knx/bau27B0.h
../../src/knx/bau57B0.cpp
../../src/knx/bau57B0.h
../../src/knx/bau_systemB.cpp
../../src/knx/bau_systemB.h
../../src/knx/bits.cpp
../../src/knx/bits.h
../../src/knx/callback_property.h
../../src/knx/cemi_frame.cpp
../../src/knx/cemi_frame.h
../../src/knx/cemi_server.cpp
../../src/knx/apdu.h
../../src/knx/application_layer.cpp
../../src/knx/application_layer.h
../../src/knx/application_program_object.cpp
../../src/knx/application_program_object.h
../../src/knx/association_table_object.cpp
../../src/knx/association_table_object.h
../../src/knx/bau.cpp
../../src/knx/bau.h
../../src/knx/bau07B0.cpp
../../src/knx/bau07B0.h
../../src/knx/bau091A.cpp
../../src/knx/bau091A.h
../../src/knx/bau27B0.cpp
../../src/knx/bau27B0.h
../../src/knx/bau2920.cpp
../../src/knx/bau2920.h
../../src/knx/bau57B0.cpp
../../src/knx/bau57B0.h
../../src/knx/bau_systemB.cpp
../../src/knx/bau_systemB.h
../../src/knx/bau_systemB_device.cpp
../../src/knx/bau_systemB_device.h
../../src/knx/bau_systemB_coupler.cpp
../../src/knx/bau_systemB_coupler.h
../../src/knx/bits.cpp
../../src/knx/bits.h
../../src/knx/callback_property.h
../../src/knx/cemi_frame.cpp
../../src/knx/cemi_frame.h
../../src/knx/cemi_server.cpp
../../src/knx/cemi_server.h
../../src/knx/cemi_server_object.cpp
../../src/knx/cemi_server_object.h
../../src/knx/config.h
../../src/knx/data_link_layer.cpp
../../src/knx/data_link_layer.h
../../src/knx/data_property.cpp
../../src/knx/data_property.h
../../src/knx/device_object.cpp
../../src/knx/device_object.h
../../src/knx/dpt.cpp
../../src/knx/dpt.h
../../src/knx/dptconvert.cpp
../../src/knx/dptconvert.h
../../src/knx/data_link_layer.h
../../src/knx/data_property.cpp
../../src/knx/data_property.h
../../src/knx/device_object.cpp
../../src/knx/device_object.h
../../src/knx/dpt.cpp
../../src/knx/dpt.h
../../src/knx/dptconvert.cpp
../../src/knx/dptconvert.h
../../src/knx/function_property.h
../../src/knx/group_object.cpp
../../src/knx/group_object.h
../../src/knx/group_object_table_object.cpp
../../src/knx/group_object_table_object.h
../../src/knx/interface_object.cpp
../../src/knx/interface_object.h
../../src/knx/ip_data_link_layer.cpp
../../src/knx/ip_data_link_layer.h
../../src/knx/ip_parameter_object.cpp
../../src/knx/ip_parameter_object.h
../../src/knx/knx_ip_device_information_dib.cpp
../../src/knx/group_object.h
../../src/knx/group_object_table_object.cpp
../../src/knx/group_object_table_object.h
../../src/knx/interface_object.cpp
../../src/knx/interface_object.h
../../src/knx/ip_data_link_layer.cpp
../../src/knx/ip_data_link_layer.h
../../src/knx/ip_parameter_object.cpp
../../src/knx/ip_parameter_object.h
../../src/knx/knx_ip_device_information_dib.cpp
../../src/knx/knx_ip_device_information_dib.h
../../src/knx/knx_ip_dib.cpp
../../src/knx/knx_ip_dib.h
@@ -74,44 +82,51 @@ add_executable(knx-linux
../../src/knx/ip_host_protocol_address_information.h
../../src/knx/knx_types.h
../../src/knx/knx_value.cpp
../../src/knx/knx_value.h
../../src/knx/memory.cpp
../../src/knx/memory.h
../../src/knx/network_layer.cpp
../../src/knx/network_layer.h
../../src/knx/npdu.cpp
../../src/knx/npdu.h
../../src/knx/knx_value.h
../../src/knx/memory.cpp
../../src/knx/memory.h
../../src/knx/network_layer.cpp
../../src/knx/network_layer.h
../../src/knx/network_layer_coupler.cpp
../../src/knx/network_layer_coupler.h
../../src/knx/network_layer_device.cpp
../../src/knx/network_layer_device.h
../../src/knx/network_layer_entity.cpp
../../src/knx/network_layer_entity.h
../../src/knx/npdu.cpp
../../src/knx/npdu.h
../../src/knx/platform.cpp
../../src/knx/platform.h
../../src/knx/property.cpp
../../src/knx/property.h
../../src/knx/rf_data_link_layer.cpp
../../src/knx/rf_data_link_layer.h
../../src/knx/rf_medium_object.cpp
../../src/knx/rf_medium_object.h
../../src/knx/rf_physical_layer.cpp
../../src/knx/rf_physical_layer.h
../../src/knx/platform.h
../../src/knx/property.cpp
../../src/knx/property.h
../../src/knx/rf_data_link_layer.cpp
../../src/knx/rf_data_link_layer.h
../../src/knx/rf_medium_object.cpp
../../src/knx/rf_medium_object.h
../../src/knx/rf_physical_layer.cpp
../../src/knx/rf_physical_layer.h
../../src/knx/router_object.cpp
../../src/knx/router_object.h
../../src/knx/secure_application_layer.cpp
../../src/knx/secure_application_layer.h
../../src/knx/security_interface_object.cpp
../../src/knx/security_interface_object.h
../../src/knx/simple_map.h
../../src/knx/table_object.cpp
../../src/knx/save_restore.h
../../src/knx/table_object.cpp
../../src/knx/table_object.h
../../src/knx/tpdu.cpp
../../src/knx/tpdu.h
../../src/knx/tpuart_data_link_layer.cpp
../../src/knx/tpuart_data_link_layer.h
../../src/knx/transport_layer.cpp
../../src/knx/transport_layer.h
../../src/knx/usb_tunnel_interface.cpp
../../src/knx/table_object.cpp
../../src/knx/table_object.h
../../src/knx/tpdu.cpp
../../src/knx/tpdu.h
../../src/knx/tpuart_data_link_layer.cpp
../../src/knx/tpuart_data_link_layer.h
../../src/knx/transport_layer.cpp
../../src/knx/transport_layer.h
../../src/knx/usb_tunnel_interface.cpp
../../src/knx/usb_tunnel_interface.h
../../src/knx_facade.cpp
../../src/knx_facade.h
../../src/linux_platform.cpp
../../src/linux_platform.h
../../src/knx_facade.h
../../src/linux_platform.cpp
../../src/linux_platform.h
fdsk.cpp
fdsk.h
main.cpp)
@@ -120,4 +135,4 @@ include_directories(../../src)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -Wno-unknown-pragmas -g -O0")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wno-unknown-pragmas -g -O0")
set_property(TARGET knx-linux PROPERTY CXX_STANDARD 11)
add_definitions(-DMEDIUM_TYPE=5)
add_definitions(-DMASK_VERSION=0x57B0)

View File

@@ -33,12 +33,13 @@ bool isSendHidReportPossible()
{
return false;
}
#if MEDIUM_TYPE == 5
#if MASK_VERSION == 0x57B0
KnxFacade<LinuxPlatform, Bau57B0> knx;
#elif MEDIUM_TYPE == 2
#elif MASK_VERSION == 0x27B0
KnxFacade<LinuxPlatform, Bau27B0> knx;
#else
#error Only MEDIUM_TYPE IP and RF supported
#error Mask version not supported yet!
#endif
long lastsend = 0;