diff --git a/application/HunttingCamera/CMakeLists.txt b/application/HunttingCamera/CMakeLists.txt index 36846c6..49eddbb 100644 --- a/application/HunttingCamera/CMakeLists.txt +++ b/application/HunttingCamera/CMakeLists.txt @@ -9,7 +9,7 @@ include_directories( link_directories( ${LIBS_OUTPUT_PATH} - ${HAL_SOURCE_PATH}/include + ${EXTERNAL_LIBS_OUTPUT_PATH} ) aux_source_directory(. SRC_FILES) diff --git a/application/HunttingCamera/build/huntting_camera.cmake b/application/HunttingCamera/build/huntting_camera.cmake index aa4f372..c24b79e 100644 --- a/application/HunttingCamera/build/huntting_camera.cmake +++ b/application/HunttingCamera/build/huntting_camera.cmake @@ -3,8 +3,9 @@ set(HUNTTING_MAIN_INCLUDE_PATH "${APPLICATION_SOURCE_PATH}/HunttingCamera/sr set(HUNTTING_MAIN_INCLUDE_PATH "${HUNTTING_MAIN_INCLUDE_PATH};${APPLICATION_SOURCE_PATH}/MissionManager/include") set(HUNTTING_MAIN_INCLUDE_PATH "${HUNTTING_MAIN_INCLUDE_PATH};${MIDDLEWARE_SOURCE_PATH}/StateMachine/include") set(HUNTTING_MAIN_INCLUDE_PATH "${HUNTTING_MAIN_INCLUDE_PATH};${MIDDLEWARE_SOURCE_PATH}/McuManager/include") +set(HUNTTING_MAIN_INCLUDE_PATH "${HUNTTING_MAIN_INCLUDE_PATH};${MIDDLEWARE_SOURCE_PATH}/AppManager/include") set(HUNTTING_MAIN_INCLUDE_PATH "${HUNTTING_MAIN_INCLUDE_PATH};${UTILS_SOURCE_PATH}/StatusCode/include") set(HUNTTING_MAIN_INCLUDE_PATH "${HUNTTING_MAIN_INCLUDE_PATH};${UTILS_SOURCE_PATH}/Log/include") set(HUNTTING_MAIN_INCLUDE_PATH "${HUNTTING_MAIN_INCLUDE_PATH};${HAL_SOURCE_PATH}/include") -set(HUNTTING_LINK_LIB McuManager MissionManager StateMachine StatusCode Log Hal pthread dl) \ No newline at end of file +set(HUNTTING_LINK_LIB McuManager MissionManager StateMachine AppManager StatusCode Log Hal pthread dl) \ No newline at end of file diff --git a/application/HunttingCamera/src/MainThread.cpp b/application/HunttingCamera/src/MainThread.cpp index ef0b16a..dcbf8a4 100644 --- a/application/HunttingCamera/src/MainThread.cpp +++ b/application/HunttingCamera/src/MainThread.cpp @@ -13,6 +13,7 @@ * limitations under the License. */ #include "MainThread.h" +#include "IAppManager.h" #include "IHalCpp.h" #include "ILog.h" #include "IMcuManager.h" @@ -61,10 +62,12 @@ StatusCode MainThread::CreateAllModules(void) CreateMcuManager(); CreateMissionManagerModule(); CreateStateMachine(); + CreateAppManagerModule(); return CreateStatusCode(STATUS_CODE_OK); } void MainThread::DestoryAllModules(void) { + DestroyAppManagerModule(); DestroyStateMachine(); DestroyMissionManagerModule(); DestroyMcuManager(); diff --git a/application/MissionManager/CMakeLists.txt b/application/MissionManager/CMakeLists.txt index ad9976b..66e684e 100644 --- a/application/MissionManager/CMakeLists.txt +++ b/application/MissionManager/CMakeLists.txt @@ -1,5 +1,6 @@ - include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake) +# include(${UTILS_SOURCE_PATH}/WebServer/build/webserver.cmake) +include(${MIDDLEWARE_SOURCE_PATH}/AppManager/build/app_manager.cmake) set(EXECUTABLE_OUTPUT_PATH ${EXEC_OUTPUT_PATH}) set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH}) @@ -9,6 +10,7 @@ include_directories( ${UTILS_SOURCE_PATH}/StatusCode/include ${UTILS_SOURCE_PATH}/Log/include ${MIDDLEWARE_SOURCE_PATH}/StateMachine/include + ${MIDDLEWARE_SOURCE_PATH}/AppManager/include # ${MIDDLEWARE_SOURCE_PATH}/DeviceManager/include ${MIDDLEWARE_SOURCE_PATH}/McuManager/include ${MIDDLEWARE_SOURCE_PATH}/McuAskBase/include diff --git a/application/MissionManager/src/AppMonitor.cpp b/application/MissionManager/src/AppMonitor.cpp new file mode 100644 index 0000000..481ddbf --- /dev/null +++ b/application/MissionManager/src/AppMonitor.cpp @@ -0,0 +1,57 @@ +#include "AppMonitor.h" +StatusCode AppMonitor::GetProductInfo(AppGetProductInfo ¶m) +{ + param.mModel = "test"; + param.mCompany = "test"; + param.mSoc = "test"; + param.mSp = "test"; + return CreateStatusCode(STATUS_CODE_OK); +} +StatusCode AppMonitor::GetDeviceAttr(AppGetDeviceAttr ¶m) +{ + param.mUUID = "test"; + param.mSoftVersion = "test"; + param.mOtaVersion = "test"; + param.mHardwareVersion = "test"; + param.mSSID = "test"; + param.mBSSID = "test"; + param.mCameraNumber = "test"; + param.mCurrentCameraID = "test"; + param.mWifiReboot = "test"; + return CreateStatusCode(STATUS_CODE_OK); +} +StatusCode AppMonitor::GetMediaInfo(AppGetMeidaInfo ¶m) +{ + param.mRtspUrl = "test"; + param.mTransport = "test"; + param.mPort = 123; + return CreateStatusCode(STATUS_CODE_OK); +} +StatusCode AppMonitor::GetSdCardInfo(AppGetSdCardInfo ¶m) +{ + param.mStatus = SdCardStatus::CARD_DAMAGED; + param.mFree = 0; + param.mTotal = 0; + return CreateStatusCode(STATUS_CODE_OK); +} +StatusCode AppMonitor::GetBatteryInfo(AppGetBatteryInfo ¶m) +{ + param.mCapacity = 0; + param.mChargeStatus = ChargeStatus::CHARGING; + return CreateStatusCode(STATUS_CODE_OK); +} +StatusCode AppMonitor::SetDateTime(AppSetDateTime ¶m) +{ + // + return CreateStatusCode(STATUS_CODE_OK); +} +StatusCode AppMonitor::SetTimeZone(const unsigned int &zone) +{ + // + return CreateStatusCode(STATUS_CODE_OK); +} +StatusCode AppMonitor::UploadFile(AppUploadFile ¶m) +{ + // + return CreateStatusCode(STATUS_CODE_OK); +} \ No newline at end of file diff --git a/application/MissionManager/src/AppMonitor.h b/application/MissionManager/src/AppMonitor.h new file mode 100644 index 0000000..60ae951 --- /dev/null +++ b/application/MissionManager/src/AppMonitor.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Fancy Code. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef APP_MONITOR_H +#define APP_MONITOR_H +#include "IAppManager.h" +class AppMonitor : public VAppMonitor +{ +public: + AppMonitor() = default; + virtual ~AppMonitor() = default; + StatusCode GetProductInfo(AppGetProductInfo ¶m) override; + StatusCode GetDeviceAttr(AppGetDeviceAttr ¶m) override; + StatusCode GetMediaInfo(AppGetMeidaInfo ¶m) override; + StatusCode GetSdCardInfo(AppGetSdCardInfo ¶m) override; + StatusCode GetBatteryInfo(AppGetBatteryInfo ¶m) override; + StatusCode SetDateTime(AppSetDateTime ¶m) override; + StatusCode SetTimeZone(const unsigned int &zone) override; + StatusCode UploadFile(AppUploadFile ¶m) override; +}; +#endif \ No newline at end of file diff --git a/application/MissionManager/src/MissionManager.cpp b/application/MissionManager/src/MissionManager.cpp index 592566d..f4a786a 100644 --- a/application/MissionManager/src/MissionManager.cpp +++ b/application/MissionManager/src/MissionManager.cpp @@ -13,6 +13,7 @@ * limitations under the License. */ #include "MissionManager.h" +#include "IAppManager.h" #include "MissionStateMachine.h" const StatusCode MissionManager::Init(void) { @@ -22,5 +23,6 @@ const StatusCode MissionManager::Init(void) const StatusCode MissionManager::UnInit(void) { MissionStateMachine::GetInstance()->UnInit(); + IAppManager::GetInstance()->UnInit(); return CreateStatusCode(STATUS_CODE_OK); } \ No newline at end of file diff --git a/application/MissionManager/src/MissionManagerMakePtr.cpp b/application/MissionManager/src/MissionManagerMakePtr.cpp index ac26553..157e15c 100644 --- a/application/MissionManager/src/MissionManagerMakePtr.cpp +++ b/application/MissionManager/src/MissionManagerMakePtr.cpp @@ -15,6 +15,7 @@ #include "MissionManagerMakePtr.h" #include "ILog.h" #include "MissionManager.h" +#include "TestMissionState.h" #include "TopState.h" bool CreateMissionManagerModule(void) { @@ -56,4 +57,9 @@ std::shared_ptr MissionManagerMakePtr::CreateTopState(void) { std::shared_ptr state = std::make_shared(); return state; +} +std::shared_ptr MissionManagerMakePtr::CreateMissionState(const IpcMission &mission) +{ + std::shared_ptr state = std::make_shared(); + return state; } \ No newline at end of file diff --git a/application/MissionManager/src/MissionManagerMakePtr.h b/application/MissionManager/src/MissionManagerMakePtr.h index bd3e708..c2e0b37 100644 --- a/application/MissionManager/src/MissionManagerMakePtr.h +++ b/application/MissionManager/src/MissionManagerMakePtr.h @@ -14,6 +14,7 @@ */ #ifndef MISSIONMANAGERMAKEIMPL_H #define MISSIONMANAGERMAKEIMPL_H +#include "IMcuManager.h" #include "IMissionManager.h" #include "IStateMachine.h" #include "StatusCode.h" @@ -26,5 +27,6 @@ public: static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr); virtual const StatusCode CreateMissionManagerInstance(std::shared_ptr &instance); virtual std::shared_ptr CreateTopState(void); + virtual std::shared_ptr CreateMissionState(const IpcMission &mission); }; #endif \ No newline at end of file diff --git a/application/MissionManager/src/MissionStateMachine.cpp b/application/MissionManager/src/MissionStateMachine.cpp index 05ee447..4c8695c 100644 --- a/application/MissionManager/src/MissionStateMachine.cpp +++ b/application/MissionManager/src/MissionStateMachine.cpp @@ -54,6 +54,10 @@ void MissionStateMachine::UnInit(void) { // } +void MissionStateMachine::SwitchState(const MissionState &state) +{ + mStateMachine->SwitchState(mStateTree[state].get()); +} IpcMission MissionStateMachine::GetStartMission(void) { class McuAskIpcMission : public McuAsk, public McuAskBase @@ -70,7 +74,9 @@ void MissionStateMachine::RunStateMachine(const IpcMission &mission) { LogInfo("Make all states and start the state machine.\n"); mStateTree[MissionState::TOP_STATE] = MissionManagerMakePtr::GetInstance()->CreateTopState(); + mStateTree[MissionState::MISSION_STATE] = MissionManagerMakePtr::GetInstance()->CreateMissionState(mission); mStateMachine->StatePlus(mStateTree[MissionState::TOP_STATE].get(), nullptr); + mStateMachine->StatePlus(mStateTree[MissionState::MISSION_STATE].get(), mStateTree[MissionState::TOP_STATE].get()); mStateMachine->SetCurrentState(mStateTree[MissionState::TOP_STATE].get()); mStateMachine->StartStateMachine(); } diff --git a/application/MissionManager/src/MissionStateMachine.h b/application/MissionManager/src/MissionStateMachine.h index 6b21066..f0eccb9 100644 --- a/application/MissionManager/src/MissionStateMachine.h +++ b/application/MissionManager/src/MissionStateMachine.h @@ -22,6 +22,7 @@ enum class MissionState { TOP_STATE = 0, + MISSION_STATE, END }; class MissionStateMachine @@ -32,6 +33,7 @@ public: static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr); void Init(void); void UnInit(void); + void SwitchState(const MissionState &state); private: IpcMission GetStartMission(void); diff --git a/application/MissionManager/src/TestMissionState.cpp b/application/MissionManager/src/TestMissionState.cpp index 472ac2b..16853f2 100644 --- a/application/MissionManager/src/TestMissionState.cpp +++ b/application/MissionManager/src/TestMissionState.cpp @@ -13,12 +13,15 @@ * limitations under the License. */ #include "TestMissionState.h" +#include "IAppManager.h" #include "ILog.h" TestMissionState::TestMissionState() : State("TestMissionState") {} void TestMissionState::GoInState() { // LogInfo(" ========== TestMissionState::GoInState.\n"); + AppParam mAppParam("192.168.1.29", APP_MANAGER_HTTP_SERVER_PORT); // TODO: + IAppManager::GetInstance()->Init(mAppParam); } void TestMissionState::GoOutState() { diff --git a/application/MissionManager/src/TestMissionState.h b/application/MissionManager/src/TestMissionState.h index b3804f5..44f2cce 100644 --- a/application/MissionManager/src/TestMissionState.h +++ b/application/MissionManager/src/TestMissionState.h @@ -14,9 +14,10 @@ */ #ifndef TEST_MISSION_STATE_H #define TEST_MISSION_STATE_H +#include "AppMonitor.h" #include "DataProcessing.h" #include "IStateMachine.h" -class TestMissionState : public State, public DataProcessing +class TestMissionState : public State, public DataProcessing, public AppMonitor { public: TestMissionState(); diff --git a/application/MissionManager/src/TopState.cpp b/application/MissionManager/src/TopState.cpp index 2f3671d..a95b5a4 100644 --- a/application/MissionManager/src/TopState.cpp +++ b/application/MissionManager/src/TopState.cpp @@ -14,11 +14,13 @@ */ #include "TopState.h" #include "ILog.h" +#include "MissionStateMachine.h" TopState::TopState() : State("TopState") {} void TopState::GoInState() { // LogInfo(" ========== opState::GoInState.\n"); + MissionStateMachine::GetInstance()->SwitchState(MissionState::MISSION_STATE); } void TopState::GoOutState() { diff --git a/middleware/AppManager/CMakeLists.txt b/middleware/AppManager/CMakeLists.txt index 84591ae..6698f8e 100644 --- a/middleware/AppManager/CMakeLists.txt +++ b/middleware/AppManager/CMakeLists.txt @@ -1,5 +1,6 @@ include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake) +include(${MIDDLEWARE_SOURCE_PATH}/AppManager/build/app_manager.cmake) set(EXECUTABLE_OUTPUT_PATH ${EXEC_OUTPUT_PATH}) set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH}) @@ -17,18 +18,6 @@ include_directories( #link_directories( #) -if (NOT DEFINED APP_MANAGER_HTTP_SERVER_IP) - set(APP_MANAGER_HTTP_SERVER_IP "localhost") -endif() -add_definitions(-DAPP_MANAGER_HTTP_SERVER_IP=\"${APP_MANAGER_HTTP_SERVER_IP}\") - -if (NOT DEFINED APP_MANAGER_HTTP_SERVER_PORT) - message(FATAL_ERROR "You should set http listen port. - Example: set(APP_MANAGER_HTTP_SERVER_PORT \"8888\") - Refer to:${CMAKE_SOURCE_DIR_IPCSDK}/builde/cmake/toolchain/linux.toolchain.cmake") -endif() -add_definitions(-DAPP_MANAGER_HTTP_SERVER_PORT=${APP_MANAGER_HTTP_SERVER_PORT}) - aux_source_directory(./src SRC_FILES) aux_source_directory(./src/Protocol/SixFrame SRC_FILES) diff --git a/middleware/AppManager/build/app_manager.cmake b/middleware/AppManager/build/app_manager.cmake new file mode 100644 index 0000000..1e04e5e --- /dev/null +++ b/middleware/AppManager/build/app_manager.cmake @@ -0,0 +1,12 @@ + +if (NOT DEFINED APP_MANAGER_HTTP_SERVER_IP) + set(APP_MANAGER_HTTP_SERVER_IP "localhost") +endif() +add_definitions(-DAPP_MANAGER_HTTP_SERVER_IP=\"${APP_MANAGER_HTTP_SERVER_IP}\") + +if (NOT DEFINED APP_MANAGER_HTTP_SERVER_PORT) + message(FATAL_ERROR "You should set http listen port. + Example: set(APP_MANAGER_HTTP_SERVER_PORT \"8888\") + Refer to:${CMAKE_SOURCE_DIR_IPCSDK}/builde/cmake/toolchain/linux.toolchain.cmake") +endif() +add_definitions(-DAPP_MANAGER_HTTP_SERVER_PORT=${APP_MANAGER_HTTP_SERVER_PORT}) diff --git a/middleware/AppManager/src/AppManager.cpp b/middleware/AppManager/src/AppManager.cpp index caed390..1877b72 100644 --- a/middleware/AppManager/src/AppManager.cpp +++ b/middleware/AppManager/src/AppManager.cpp @@ -47,7 +47,7 @@ void AppManager::AppRequestHandle(const char *url, const unsigned int urlLength, } void AppManager::HttpServerStart(const AppParam ¶m) { - auto httpServerThread = [¶m](std::shared_ptr app) { + auto httpServerThread = [=](std::shared_ptr app) { LogInfo("AppManager httpServer started.\n"); app->HttpServerThread(param); }; diff --git a/test/middleware/AppManager/CMakeLists.txt b/test/middleware/AppManager/CMakeLists.txt index d978ade..c86b766 100644 --- a/test/middleware/AppManager/CMakeLists.txt +++ b/test/middleware/AppManager/CMakeLists.txt @@ -1,5 +1,6 @@ # include(${CMAKE_SOURCE_DIR}/build/independent_source.cmake) include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake) +include(${MIDDLEWARE_SOURCE_PATH}/AppManager/build/app_manager.cmake) set(EXECUTABLE_OUTPUT_PATH ${TEST_OUTPUT_PATH}/bin) include_directories( @@ -25,18 +26,6 @@ link_directories( ${EXTERNAL_LIBS_OUTPUT_PATH} ) -if (NOT DEFINED APP_MANAGER_HTTP_SERVER_IP) - set(APP_MANAGER_HTTP_SERVER_IP "localhost") -endif() -add_definitions(-DAPP_MANAGER_HTTP_SERVER_IP=\"${APP_MANAGER_HTTP_SERVER_IP}\") - -if (NOT DEFINED APP_MANAGER_HTTP_SERVER_PORT) - message(FATAL_ERROR "You should set http listen port. - Example: set(APP_MANAGER_HTTP_SERVER_PORT \"8888\") - Refer to:${CMAKE_SOURCE_DIR_IPCSDK}/builde/cmake/toolchain/linux.toolchain.cmake") -endif() -add_definitions(-DAPP_MANAGER_HTTP_SERVER_PORT=${APP_MANAGER_HTTP_SERVER_PORT}) - aux_source_directory(. SRC_FILES_MAIN) aux_source_directory(./src SRC_FILES) if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX}) diff --git a/test/middleware/AppManager/tool/CMakeLists.txt b/test/middleware/AppManager/tool/CMakeLists.txt index 331828c..bb4a5aa 100644 --- a/test/middleware/AppManager/tool/CMakeLists.txt +++ b/test/middleware/AppManager/tool/CMakeLists.txt @@ -1,4 +1,5 @@ include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake) +include(${MIDDLEWARE_SOURCE_PATH}/AppManager/build/app_manager.cmake) set(EXECUTABLE_OUTPUT_PATH ${EXEC_OUTPUT_PATH}) set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH}) @@ -18,18 +19,6 @@ include_directories( # ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs # ) -if (NOT DEFINED APP_MANAGER_HTTP_SERVER_IP) - set(APP_MANAGER_HTTP_SERVER_IP "localhost") -endif() -add_definitions(-DAPP_MANAGER_HTTP_SERVER_IP=\"${APP_MANAGER_HTTP_SERVER_IP}\") - -if (NOT DEFINED APP_MANAGER_HTTP_SERVER_PORT) - message(FATAL_ERROR "You should set http listen port. - Example: set(APP_MANAGER_HTTP_SERVER_PORT \"8888\") - Refer to:${CMAKE_SOURCE_DIR_IPCSDK}/builde/cmake/toolchain/linux.toolchain.cmake") -endif() -add_definitions(-DAPP_MANAGER_HTTP_SERVER_PORT=${APP_MANAGER_HTTP_SERVER_PORT}) - aux_source_directory(./src TEST_TOOL_SRC_FILES) set(TEST_TOOL_TARGET AppManagerTestTool) add_library(${TEST_TOOL_TARGET} STATIC ${TEST_TOOL_SRC_FILES}) diff --git a/utils/WebServer/CMakeLists.txt b/utils/WebServer/CMakeLists.txt index bed864f..47c73cd 100644 --- a/utils/WebServer/CMakeLists.txt +++ b/utils/WebServer/CMakeLists.txt @@ -1,5 +1,6 @@ include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake) include(${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/goahead.cmake) +include(${UTILS_SOURCE_PATH}/WebServer/build/webserver.cmake) set(EXECUTABLE_OUTPUT_PATH ${EXEC_OUTPUT_PATH}) set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH}) @@ -15,17 +16,6 @@ include_directories( # ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs # ) -if (NOT DEFINED GOAHEAD_DOCUMENTS_PATH) - set(GOAHEAD_DOCUMENTS_PATH "web") -endif() -if (NOT DEFINED GOAHEAD_CONFIG_FILE_PATH) - set(GOAHEAD_CONFIG_FILE_PATH "${PLATFORM_PATH}/cmake-shell/") - add_definitions(-DGOAHEAD_CONFIG_FILE_PATH=\"./\") -else() - add_definitions(-DGOAHEAD_CONFIG_FILE_PATH=\"${GOAHEAD_CONFIG_FILE_PATH}\") -endif() -add_definitions(-DGOAHEAD_DOCUMENTS_PATH=\"${GOAHEAD_DOCUMENTS_PATH}\") - if (NOT DEFINED GOAHEAD_UPLOAD_TMP_PATH) message(FATAL_ERROR "YYou should set the GOAHEAD_UPLOAD_TMP_PATH variable so that the GOAHEAD module can temporarily save uploaded files. For example: set(GOAHEAD_UPLOAD_TMP_PATH \"./goahead\") diff --git a/utils/WebServer/README.md b/utils/WebServer/README.md index 5ba32cc..da6df73 100644 --- a/utils/WebServer/README.md +++ b/utils/WebServer/README.md @@ -79,4 +79,31 @@ PUBLIC void websServiceEvents(int *finished)    源码限制POST文件大小太小,这里修改为32M。 ``` +``` + +## 1.5. goahead的bug + +   当goahead使用无效的ip进行listen时,asan工具会报内存泄漏问题,目前暂时忽略该bug + +``` +================================================================= +==1420508==ERROR: LeakSanitizer: detected memory leaks + +Direct leak of 17 byte(s) in 1 object(s) allocated from: + #0 0x7f3f4325d808 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:144 + #1 0x55bc16b87490 in walloc src/alloc.c:280 + #2 0x55bc16b991ae in sclone src/runtime.c:2430 + #3 0x55bc16b9be26 in socketParseAddress src/socket.c:1334 + #4 0x55bc16b891bf in websListen src/http.c:646 + #5 0x55bc16b86f59 in WebServerInit /home/xiaojiazhu/project/rkipc/battery/ipc-rk1106/ipc-sdk/utils/WebServer/src/WebServer.cpp:152 + #6 0x55bc16b81f4a in AppManager::HttpServerThread(app_param const&) /home/xiaojiazhu/project/rkipc/battery/ipc-rk1106/ipc-sdk/middleware/AppManager/src/AppManager.cpp:79 + #7 0x55bc16b829f0 in operator() /home/xiaojiazhu/project/rkipc/battery/ipc-rk1106/ipc-sdk/middleware/AppManager/src/AppManager.cpp:52 + #8 0x55bc16b829f0 in __invoke_impl)>, std::shared_ptr > /usr/include/c++/9/bits/invoke.h:60 + #9 0x55bc16b829f0 in __invoke)>, std::shared_ptr > /usr/include/c++/9/bits/invoke.h:95 + #10 0x55bc16b829f0 in _M_invoke<0, 1> /usr/include/c++/9/thread:244 + #11 0x55bc16b829f0 in operator() /usr/include/c++/9/thread:251 + #12 0x55bc16b829f0 in _M_run /usr/include/c++/9/thread:195 + #13 0x7f3f4301bdf3 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xd6df3) + +SUMMARY: AddressSanitizer: 17 byte(s) leaked in 1 allocation(s). ``` \ No newline at end of file diff --git a/utils/WebServer/build/webserver.cmake b/utils/WebServer/build/webserver.cmake new file mode 100644 index 0000000..bf903f7 --- /dev/null +++ b/utils/WebServer/build/webserver.cmake @@ -0,0 +1,11 @@ + +if (NOT DEFINED GOAHEAD_DOCUMENTS_PATH) + set(GOAHEAD_DOCUMENTS_PATH "web") +endif() +if (NOT DEFINED GOAHEAD_CONFIG_FILE_PATH) + set(GOAHEAD_CONFIG_FILE_PATH "${PLATFORM_PATH}/cmake-shell/") + add_definitions(-DGOAHEAD_CONFIG_FILE_PATH=\"./\") +else() + add_definitions(-DGOAHEAD_CONFIG_FILE_PATH=\"${GOAHEAD_CONFIG_FILE_PATH}\") +endif() +add_definitions(-DGOAHEAD_DOCUMENTS_PATH=\"${GOAHEAD_DOCUMENTS_PATH}\")