fix property save

This commit is contained in:
Thomas Kunze 2019-12-12 22:47:54 +01:00
parent 6765add06d
commit 515d18fdbf
12 changed files with 335 additions and 322 deletions

View File

@ -2,88 +2,88 @@ cmake_minimum_required(VERSION 2.7)
project(knx-linux) project(knx-linux)
set(LIBRARIES_FROM_REFERENCES "") set(LIBRARIES_FROM_REFERENCES "")
add_executable(knx-linux add_executable(knx-linux
../src/knx/address_table_object.cpp ../../src/knx/address_table_object.cpp
../src/knx/address_table_object.h ../../src/knx/address_table_object.h
../src/knx/apdu.cpp ../../src/knx/apdu.cpp
../src/knx/apdu.h ../../src/knx/apdu.h
../src/knx/application_layer.cpp ../../src/knx/application_layer.cpp
../src/knx/application_layer.h ../../src/knx/application_layer.h
../src/knx/application_program_object.cpp ../../src/knx/application_program_object.cpp
../src/knx/application_program_object.h ../../src/knx/application_program_object.h
../src/knx/association_table_object.cpp ../../src/knx/association_table_object.cpp
../src/knx/association_table_object.h ../../src/knx/association_table_object.h
../src/knx/bau.cpp ../../src/knx/bau.cpp
../src/knx/bau.h ../../src/knx/bau.h
../src/knx/bau07B0.cpp ../../src/knx/bau07B0.cpp
../src/knx/bau07B0.h ../../src/knx/bau07B0.h
../src/knx/bau27B0.cpp ../../src/knx/bau27B0.cpp
../src/knx/bau27B0.h ../../src/knx/bau27B0.h
../src/knx/bau57B0.cpp ../../src/knx/bau57B0.cpp
../src/knx/bau57B0.h ../../src/knx/bau57B0.h
../src/knx/bau_systemB.cpp ../../src/knx/bau_systemB.cpp
../src/knx/bau_systemB.h ../../src/knx/bau_systemB.h
../src/knx/bits.cpp ../../src/knx/bits.cpp
../src/knx/bits.h ../../src/knx/bits.h
../src/knx/callback_property.h ../../src/knx/callback_property.h
../src/knx/cemi_frame.cpp ../../src/knx/cemi_frame.cpp
../src/knx/cemi_frame.h ../../src/knx/cemi_frame.h
../src/knx/cemi_server.cpp ../../src/knx/cemi_server.cpp
../src/knx/cemi_server_object.cpp ../../src/knx/cemi_server_object.cpp
../src/knx/data_link_layer.cpp ../../src/knx/data_link_layer.cpp
../src/knx/data_link_layer.h ../../src/knx/data_link_layer.h
../src/knx/data_property.cpp ../../src/knx/data_property.cpp
../src/knx/data_property.h ../../src/knx/data_property.h
../src/knx/device_object.cpp ../../src/knx/device_object.cpp
../src/knx/device_object.h ../../src/knx/device_object.h
../src/knx/dpt.cpp ../../src/knx/dpt.cpp
../src/knx/dpt.h ../../src/knx/dpt.h
../src/knx/dptconvert.cpp ../../src/knx/dptconvert.cpp
../src/knx/dptconvert.h ../../src/knx/dptconvert.h
../src/knx/group_object.cpp ../../src/knx/group_object.cpp
../src/knx/group_object.h ../../src/knx/group_object.h
../src/knx/group_object_table_object.cpp ../../src/knx/group_object_table_object.cpp
../src/knx/group_object_table_object.h ../../src/knx/group_object_table_object.h
../src/knx/interface_object.cpp ../../src/knx/interface_object.cpp
../src/knx/interface_object.h ../../src/knx/interface_object.h
../src/knx/ip_data_link_layer.cpp ../../src/knx/ip_data_link_layer.cpp
../src/knx/ip_data_link_layer.h ../../src/knx/ip_data_link_layer.h
../src/knx/ip_parameter_object.cpp ../../src/knx/ip_parameter_object.cpp
../src/knx/ip_parameter_object.h ../../src/knx/ip_parameter_object.h
../src/knx/knx_ip_frame.cpp ../../src/knx/knx_ip_frame.cpp
../src/knx/knx_value.cpp ../../src/knx/knx_value.cpp
../src/knx/knx_value.h ../../src/knx/knx_value.h
../src/knx/memory.cpp ../../src/knx/memory.cpp
../src/knx/memory.h ../../src/knx/memory.h
../src/knx/network_layer.cpp ../../src/knx/network_layer.cpp
../src/knx/network_layer.h ../../src/knx/network_layer.h
../src/knx/npdu.cpp ../../src/knx/npdu.cpp
../src/knx/npdu.h ../../src/knx/npdu.h
../src/knx/platform.cpp ../../src/knx/platform.cpp
../src/knx/platform.h ../../src/knx/platform.h
../src/knx/property.cpp ../../src/knx/property.cpp
../src/knx/property.h ../../src/knx/property.h
../src/knx/rf_data_link_layer.cpp ../../src/knx/rf_data_link_layer.cpp
../src/knx/rf_data_link_layer.h ../../src/knx/rf_data_link_layer.h
../src/knx/rf_medium_object.cpp ../../src/knx/rf_medium_object.cpp
../src/knx/rf_medium_object.h ../../src/knx/rf_medium_object.h
../src/knx/rf_physical_layer.cpp ../../src/knx/rf_physical_layer.cpp
../src/knx/rf_physical_layer.h ../../src/knx/rf_physical_layer.h
../src/knx/table_object.cpp ../../src/knx/table_object.cpp
../src/knx/table_object.h ../../src/knx/table_object.h
../src/knx/tpdu.cpp ../../src/knx/tpdu.cpp
../src/knx/tpdu.h ../../src/knx/tpdu.h
../src/knx/tpuart_data_link_layer.cpp ../../src/knx/tpuart_data_link_layer.cpp
../src/knx/tpuart_data_link_layer.h ../../src/knx/tpuart_data_link_layer.h
../src/knx/transport_layer.cpp ../../src/knx/transport_layer.cpp
../src/knx/transport_layer.h ../../src/knx/transport_layer.h
../src/knx/usb_tunnel_interface.cpp ../../src/knx/usb_tunnel_interface.cpp
../src/knx_facade.cpp ../../src/knx_facade.cpp
../src/knx_facade.h ../../src/knx_facade.h
../src/linux_platform.cpp ../../src/linux_platform.cpp
../src/linux_platform.h ../../src/linux_platform.h
main.cpp) main.cpp)
target_link_libraries(knx-linux "${LIBRARIES_FROM_REFERENCES}") target_link_libraries(knx-linux "${LIBRARIES_FROM_REFERENCES}")
include_directories(../src) include_directories(../../src)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -Wno-unknown-pragmas -Wno-switch -g -O0") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -Wno-unknown-pragmas -Wno-switch -g -O0")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wno-unknown-pragmas -Wno-switch -g -O0") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wno-unknown-pragmas -Wno-switch -g -O0")
set_property(TARGET knx-linux PROPERTY CXX_STANDARD 11) set_property(TARGET knx-linux PROPERTY CXX_STANDARD 11)

View File

@ -18,7 +18,7 @@
<Transport>SSH</Transport> <Transport>SSH</Transport>
<UserName>tkunze</UserName> <UserName>tkunze</UserName>
</RemoteHost> </RemoteHost>
<LocalDirectory>$(ProjectDir)\..</LocalDirectory> <LocalDirectory>$(ProjectDir)\..\..</LocalDirectory>
<RemoteDirectory>/home/tkunze/vgdb/knx-linux</RemoteDirectory> <RemoteDirectory>/home/tkunze/vgdb/knx-linux</RemoteDirectory>
<FileMasks> <FileMasks>
<string>*.cpp</string> <string>*.cpp</string>
@ -36,7 +36,6 @@
</FileMasks> </FileMasks>
<TransferNewFilesOnly>false</TransferNewFilesOnly> <TransferNewFilesOnly>false</TransferNewFilesOnly>
<IncludeSubdirectories>true</IncludeSubdirectories> <IncludeSubdirectories>true</IncludeSubdirectories>
<SelectedDirectories />
<DeleteDisappearedFiles>true</DeleteDisappearedFiles> <DeleteDisappearedFiles>true</DeleteDisappearedFiles>
<ApplyGlobalExclusionList>true</ApplyGlobalExclusionList> <ApplyGlobalExclusionList>true</ApplyGlobalExclusionList>
<Extension> <Extension>
@ -59,7 +58,7 @@
<Revision>0</Revision> <Revision>0</Revision>
</Version> </Version>
</ToolchainID> </ToolchainID>
<RelativeSourceDirectory>knx-linux</RelativeSourceDirectory> <RelativeSourceDirectory>examples/knx-linux</RelativeSourceDirectory>
<ConfigurationType>DEBUG</ConfigurationType> <ConfigurationType>DEBUG</ConfigurationType>
<BinaryDirectory>Debug</BinaryDirectory> <BinaryDirectory>Debug</BinaryDirectory>
<MainCMakeTarget>knx-linux</MainCMakeTarget> <MainCMakeTarget>knx-linux</MainCMakeTarget>

View File

@ -32,276 +32,276 @@
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\src\linux_platform.h"> <ClInclude Include="..\..\src\knx\address_table_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\apdu.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\application_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\application_program_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\association_table_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\bau.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\bau_systemB.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\bau07B0.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\bau27B0.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\bau57B0.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\bits.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\callback_property.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\cemi_frame.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\cemi_server.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\cemi_server_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\config.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\data_link_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\data_property.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\datapoint_types.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\device_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\dpt.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\dptconvert.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\group_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\group_object_table_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\interface_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\ip_data_link_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\ip_parameter_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\knx_ip_frame.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\knx_types.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\knx_value.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\memory.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\network_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\npdu.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\platform.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\property.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\rf_data_link_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\rf_medium_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\rf_physical_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\save_restore.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\table_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\tpdu.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\tpuart_data_link_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\transport_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\knx\usb_tunnel_interface.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\..\src\linux_platform.h">
<Filter>Header files</Filter> <Filter>Header files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\knx\address_table_object.h"> <ClInclude Include="..\..\src\knx.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\apdu.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\application_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\application_program_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\association_table_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\bau.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\bau_systemB.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\bau07B0.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\bau57B0.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\bits.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\cemi_frame.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\data_link_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\device_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\group_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\group_object_table_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\interface_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\ip_data_link_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\ip_parameter_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\knx_types.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\memory.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\network_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\npdu.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\platform.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\save_restore.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\table_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\tpdu.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\tpuart_data_link_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\transport_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx_facade.h">
<Filter>Header files</Filter> <Filter>Header files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\knx.h"> <ClInclude Include="..\..\src\knx_facade.h">
<Filter>Header files</Filter> <Filter>Header files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\knx\dptconvert.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\dpt.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\knx_value.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\bau27B0.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\knx_ip_frame.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\rf_data_link_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\rf_medium_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\rf_physical_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\property.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\cemi_server.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\cemi_server_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\datapoint_types.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\usb_tunnel_interface.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\data_property.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\callback_property.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\config.h">
<Filter>Header files\knx</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\src\knx\address_table_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\apdu.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\application_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\application_program_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\association_table_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\bau.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\bau_systemB.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\bau07B0.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\bau57B0.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\bits.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\cemi_frame.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\data_link_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\device_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\group_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\group_object_table_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\interface_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\ip_data_link_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\ip_parameter_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\memory.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\network_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\npdu.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\table_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\tpdu.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\tpuart_data_link_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\transport_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\linux_platform.cpp">
<Filter>Source files</Filter>
</ClCompile>
<ClCompile Include="main.cpp"> <ClCompile Include="main.cpp">
<Filter>Source files</Filter> <Filter>Source files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx_facade.cpp"> <ClCompile Include="..\..\src\linux_platform.cpp">
<Filter>Source files</Filter> <Filter>Source files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\dptconvert.cpp"> <ClCompile Include="..\..\src\knx\address_table_object.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\dpt.cpp"> <ClCompile Include="..\..\src\knx\apdu.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\knx_value.cpp"> <ClCompile Include="..\..\src\knx\application_layer.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\bau27B0.cpp"> <ClCompile Include="..\..\src\knx\application_program_object.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\knx_ip_frame.cpp"> <ClCompile Include="..\..\src\knx\association_table_object.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\rf_data_link_layer.cpp"> <ClCompile Include="..\..\src\knx\bau.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\rf_medium_object.cpp"> <ClCompile Include="..\..\src\knx\bau_systemB.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\rf_physical_layer.cpp"> <ClCompile Include="..\..\src\knx\bau07B0.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\platform.cpp"> <ClCompile Include="..\..\src\knx\bau27B0.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\cemi_server.cpp"> <ClCompile Include="..\..\src\knx\bau57B0.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\cemi_server_object.cpp"> <ClCompile Include="..\..\src\knx\bits.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\datapoint_types.cpp"> <ClCompile Include="..\..\src\knx\cemi_frame.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\usb_tunnel_interface.cpp"> <ClCompile Include="..\..\src\knx\cemi_server.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\property.cpp"> <ClCompile Include="..\..\src\knx\cemi_server_object.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\knx\data_property.cpp"> <ClCompile Include="..\..\src\knx\data_link_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\data_property.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\datapoint_types.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\device_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\dpt.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\dptconvert.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\group_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\group_object_table_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\interface_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\ip_data_link_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\ip_parameter_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx_facade.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\knx_ip_frame.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\knx_value.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\memory.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\network_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\npdu.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\platform.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\property.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\rf_data_link_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\rf_medium_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\rf_physical_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\table_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\tpdu.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\tpuart_data_link_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\transport_layer.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\..\src\knx\usb_tunnel_interface.cpp">
<Filter>Source files\knx</Filter> <Filter>Source files\knx</Filter>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>

View File

@ -12,8 +12,17 @@ Bau57B0::Bau57B0(Platform& platform)
: BauSystemB(platform), : BauSystemB(platform),
_ipParameters(_deviceObj, platform), _ipParameters(_deviceObj, platform),
_dlLayer(_deviceObj, _addrTable, _ipParameters, _netLayer, _platform) _dlLayer(_deviceObj, _addrTable, _ipParameters, _netLayer, _platform)
#ifdef USE_CEMI_SERVER
,
_cemiServer(*this)
#endif
{ {
_netLayer.dataLinkLayer(_dlLayer); _netLayer.dataLinkLayer(_dlLayer);
#ifdef USE_CEMI_SERVER
_cemiServer.dataLinkLayer(_dlLayer);
_dlLayer.cemiServer(_cemiServer);
_memory.addSaveRestore(&_cemiServerObject);
#endif
_memory.addSaveRestore(&_ipParameters); _memory.addSaveRestore(&_ipParameters);
// Set Mask Version in Device Object depending on the BAU // Set Mask Version in Device Object depending on the BAU

View File

@ -5,6 +5,7 @@
#include "bau_systemB.h" #include "bau_systemB.h"
#include "ip_parameter_object.h" #include "ip_parameter_object.h"
#include "ip_data_link_layer.h" #include "ip_data_link_layer.h"
#include "cemi_server_object.h"
class Bau57B0 : public BauSystemB class Bau57B0 : public BauSystemB
{ {
@ -20,6 +21,10 @@ class Bau57B0 : public BauSystemB
private: private:
IpParameterObject _ipParameters; IpParameterObject _ipParameters;
IpDataLinkLayer _dlLayer; IpDataLinkLayer _dlLayer;
#ifdef USE_CEMI_SERVER
CemiServer _cemiServer;
CemiServerObject _cemiServerObject;
#endif
uint8_t _descriptor[2] = {0x57, 0xb0}; uint8_t _descriptor[2] = {0x57, 0xb0};
const uint32_t _ifObjs[7] = { 6, // length const uint32_t _ifObjs[7] = { 6, // length
OT_DEVICE, OT_ADDR_TABLE, OT_ASSOC_TABLE, OT_GRP_OBJ_TABLE, OT_APPLICATION_PROG, OT_IP_PARAMETER}; OT_DEVICE, OT_ADDR_TABLE, OT_ASSOC_TABLE, OT_GRP_OBJ_TABLE, OT_APPLICATION_PROG, OT_IP_PARAMETER};

View File

@ -27,7 +27,7 @@ template <class T> class CallbackProperty : public Property
} }
virtual uint8_t write(uint16_t start, uint8_t count, uint8_t* data) override virtual uint8_t write(uint16_t start, uint8_t count, uint8_t* data) override
{ {
if (count == 0 || start > _maxElements || !_writeEnable || start + count > _maxElements + 1 || _writeCallback == nullptr) if (count == 0 || start > _maxElements || start + count > _maxElements + 1 || _writeCallback == nullptr)
return 0; return 0;
return _writeCallback(_interfaceObject, start, count, data); return _writeCallback(_interfaceObject, start, count, data);
} }

View File

@ -44,10 +44,10 @@ class CemiServer
void loop(); void loop();
private: private:
uint16_t _clientAddress; uint16_t _clientAddress = 0;
uint8_t _frameNumber = 0; uint8_t _frameNumber = 0;
DataLinkLayer* _dataLinkLayer; DataLinkLayer* _dataLinkLayer = nullptr;
BauSystemB& _bau; BauSystemB& _bau;
UsbTunnelInterface _usbTunnelInterface; UsbTunnelInterface _usbTunnelInterface;
}; };

View File

@ -1,5 +1,7 @@
#pragma once #pragma once
#include "config.h"
#include <stdint.h> #include <stdint.h>
#include "device_object.h" #include "device_object.h"
#include "address_table_object.h" #include "address_table_object.h"

View File

@ -25,7 +25,7 @@ uint8_t DataProperty::read(uint16_t start, uint8_t count, uint8_t* data) const
uint8_t DataProperty::write(uint16_t start, uint8_t count, uint8_t* data) uint8_t DataProperty::write(uint16_t start, uint8_t count, uint8_t* data)
{ {
if (count == 0 || start > _maxElements || !_writeEnable || start + count > _maxElements + 1) if (count == 0 || start > _maxElements || start + count > _maxElements + 1)
return 0; return 0;
if (start == 0) if (start == 0)
@ -152,7 +152,7 @@ uint8_t* DataProperty::save(uint8_t* buffer)
{ {
buffer = pushWord(_currentElements, buffer); buffer = pushWord(_currentElements, buffer);
if (_currentElements > 0) if (_currentElements > 0)
buffer = pushByteArray(_data, _currentElements, buffer); buffer = pushByteArray(_data, _currentElements * ElementSize(), buffer);
return buffer; return buffer;
} }

View File

@ -59,7 +59,7 @@ private:
uint8_t _knxSerialNumber[6] = { 0x00, 0xFA, 0x00, 0x00, 0x00, 0x00 }; //Default to KNXA (0xFA) uint8_t _knxSerialNumber[6] = { 0x00, 0xFA, 0x00, 0x00, 0x00, 0x00 }; //Default to KNXA (0xFA)
char _orderNumber[10] = ""; char _orderNumber[10] = "";
uint8_t _hardwareType[6] = { 0, 0, 0, 0, 0, 0}; uint8_t _hardwareType[6] = { 0, 0, 0, 0, 0, 0};
uint16_t _version = 0; uint16_t _version = 1;
uint16_t _maskVersion = 0x0000; uint16_t _maskVersion = 0x0000;
uint16_t _maxApduLength = 254; uint16_t _maxApduLength = 254;
const uint32_t* _ifObjs; const uint32_t* _ifObjs;

View File

@ -8,9 +8,7 @@
if (payload_length != (x)) \ if (payload_length != (x)) \
return false return false
#define ENSURE_PAYLOAD(x) #define ENSURE_PAYLOAD(x)
//\
// for (int pi = 0; pi < (x); ++pi) \
// payload[pi] = 0
int KNX_Decode_Value(uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value) int KNX_Decode_Value(uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
{ {

View File

@ -56,7 +56,7 @@ void Platform::setupUart()
uint32_t Platform::currentIpAddress() uint32_t Platform::currentIpAddress()
{ {
return 0; return 0x01020304;
} }
uint32_t Platform::currentSubnetMask() uint32_t Platform::currentSubnetMask()