diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..2ed7f4d6 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,19 @@ +project(GURUX.DLMS.cpp) + +cmake_minimum_required(VERSION 3.9) + +find_package (Threads REQUIRED) + +option(BUILD_EXAMPLE "Build Examples" OFF) +option(BUILD_SHARED_LIBS "Build Shared Libs" OFF) + +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin) +set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/lib) + +add_subdirectory(development) + +if(BUILD_EXAMPLE) + add_subdirectory(GuruxDLMSClientExample) + add_subdirectory(GuruxDLMSPushExample) + add_subdirectory(GuruxDLMSServerExample) +endif() diff --git a/GuruxDLMSClientExample/CMakeLists.txt b/GuruxDLMSClientExample/CMakeLists.txt new file mode 100644 index 00000000..5cbaf83a --- /dev/null +++ b/GuruxDLMSClientExample/CMakeLists.txt @@ -0,0 +1,23 @@ +project(gurux_dlms_cpp_client_example) + +cmake_minimum_required(VERSION 3.9) + +file(GLOB sources src/*.cpp) + +add_executable(gurux.dlms.client.bin + ${sources} +) + +target_include_directories(gurux.dlms.client.bin + PUBLIC + include +) + +target_compile_options(gurux.dlms.client.bin + PUBLIC + -Wall -fPIC +) + +target_link_libraries(gurux.dlms.client.bin + gurux_dlms_cpp +) diff --git a/GuruxDLMSPushExample/CMakeLists.txt b/GuruxDLMSPushExample/CMakeLists.txt new file mode 100644 index 00000000..f21a90f3 --- /dev/null +++ b/GuruxDLMSPushExample/CMakeLists.txt @@ -0,0 +1,24 @@ +project(gurux_dlms_cpp_push_example) + +cmake_minimum_required(VERSION 3.9) + +file(GLOB sources src/*.cpp) + +add_executable(gurux.dlms.push.bin + ${sources} +) + +target_include_directories(gurux.dlms.push.bin + PUBLIC + include +) + +target_compile_options(gurux.dlms.push.bin + PUBLIC + -Wall -fPIC +) + +target_link_libraries(gurux.dlms.push.bin + gurux_dlms_cpp + Threads::Threads +) diff --git a/GuruxDLMSServerExample/CMakeLists.txt b/GuruxDLMSServerExample/CMakeLists.txt new file mode 100644 index 00000000..5f8a78bd --- /dev/null +++ b/GuruxDLMSServerExample/CMakeLists.txt @@ -0,0 +1,24 @@ +project(gurux_dlms_cpp_server_example) + +cmake_minimum_required(VERSION 3.9) + +file(GLOB sources src/*.cpp) + +add_executable(gurux.dlms.server.bin + ${sources} +) + +target_include_directories(gurux.dlms.server.bin + PUBLIC + include +) + +target_compile_options(gurux.dlms.server.bin + PUBLIC + -Wall -fPIC +) + +target_link_libraries(gurux.dlms.server.bin + gurux_dlms_cpp + Threads::Threads +) \ No newline at end of file diff --git a/development/CMakeLists.txt b/development/CMakeLists.txt new file mode 100644 index 00000000..f1cefff8 --- /dev/null +++ b/development/CMakeLists.txt @@ -0,0 +1,28 @@ +project(gurux_dlms_cpp) + +cmake_minimum_required(VERSION 3.9) + +file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cpp) + +add_library(gurux_dlms_cpp + ${sources} +) + +target_include_directories(gurux_dlms_cpp + PUBLIC + ${PROJECT_SOURCE_DIR}/include/ +) + +target_compile_options(gurux_dlms_cpp + PUBLIC + -Wall -fPIC +) + +install(TARGETS gurux_dlms_cpp + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib +) + +install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/" + DESTINATION ${CMAKE_INSTALL_PREFIX}/include + FILES_MATCHING PATTERN "*.*h" +) \ No newline at end of file diff --git a/development/src/GXDLMS.cpp b/development/src/GXDLMS.cpp index d704e514..e2f33bd2 100644 --- a/development/src/GXDLMS.cpp +++ b/development/src/GXDLMS.cpp @@ -2620,7 +2620,7 @@ int CGXDLMS::GetData(CGXDLMSSettings& settings, { return ret; } - if (ret == DLMS_ERROR_CODE_FALSE) + if (notify != NULL && ret == DLMS_ERROR_CODE_FALSE) { target = notify; isNotify = true; @@ -3797,4 +3797,4 @@ int CGXDLMS::HandleConfirmedServiceError(CGXReplyData& data) return service << 16 | type << 8 | ch; } return 0; -} \ No newline at end of file +}