diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 29d13e4..25ea3af 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -4,9 +4,8 @@ "name": "Linux", "includePath": [ "${workspaceFolder}/**", - "/opt/aarch64-v01c01-linux-gnu-gcc/lib/libdatachannel-0.22.5/include", - "/opt/aarch64-v01c01-linux-gnu-gcc/lib/boost_1_87_0/include", - "/opt/aarch64-v01c01-linux-gnu-gcc/lib/libdatachannel-0.22.5", + "/opt/aarch64-v01c01-linux-gnu-gcc/lib/libdatachannel-0.22.6/include", + "/opt/aarch64-v01c01-linux-gnu-gcc/lib/boost_1_88_0/include", "/opt/aarch64-v01c01-linux-gnu-gcc/lib/ZLMediaKit/include", "/opt/aarch64-v01c01-linux-gnu-gcc/lib/LeakTracer/include", "/opt/aarch64-v01c01-linux-gnu-gcc/lib/opencv-4.11.0/include/opencv4", diff --git a/Main/Application.cpp b/Main/Application.cpp index 4048723..f4dd5ff 100644 --- a/Main/Application.cpp +++ b/Main/Application.cpp @@ -2,9 +2,9 @@ #include "Core/IoContext.h" #include "Core/Logger.h" #include "Core/Singleton.h" -#include "HttpSession.h" +#include "HttpServer/HttpSession.h" +#include "HttpServer/ServiceLogic.h" #include "Router/router.hpp" -#include "ServiceLogic.h" #include "Settings.h" #include "WebRTC/SignalServer.h" #include diff --git a/Main/CMakeLists.txt b/Main/CMakeLists.txt index 39089d7..69ec62e 100644 --- a/Main/CMakeLists.txt +++ b/Main/CMakeLists.txt @@ -6,14 +6,15 @@ find_package(Boost COMPONENTS json REQUIRED) add_executable(PassengerStatistics main.cpp Application.h Application.cpp Camera.h Camera.cpp - HttpSession.h HttpSession.cpp ImageUtilities.h ImageUtilities.cpp RtspServer.h RtspServer.cpp - ResponseUtility.h ResponseUtility.cpp - ServiceLogic.h ServiceLogic.cpp Settings.h Settings.cpp VideoInput.h VideoInput.cpp + HttpServer/HttpSession.h HttpServer/HttpSession.cpp + HttpServer/ResponseUtility.h HttpServer/ResponseUtility.cpp + HttpServer/ServiceLogic.h HttpServer/ServiceLogic.cpp + WebRTC/Streamer.h WebRTC/Streamer.cpp WebRTC/Helpers.h WebRTC/Helpers.cpp WebRTC/SignalServer.h WebRTC/SignalServer.cpp @@ -24,6 +25,7 @@ target_include_directories(PassengerStatistics PRIVATE ${CMAKE_SOURCE_DIR}/3rdparty/rw_mpp/include PRIVATE ${CMAKE_SOURCE_DIR}/3rdparty/fsan_sensorsdk/include PRIVATE ${ZLMediaKit_INCLUDE_DIR} + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ) target_link_directories(PassengerStatistics diff --git a/Main/Camera.cpp b/Main/Camera.cpp index d0c2595..c7411c7 100644 --- a/Main/Camera.cpp +++ b/Main/Camera.cpp @@ -48,3 +48,45 @@ void Camera::initIrCutGpio() { )"; system(dayCommand); } + +bool Camera::zeroCheck() { + SENSOR_SDK_AUTOLENS_PARAM_T param = {0}; + int status = SensorSdk_AutoLens_SetParam(0, SensorSDK_AutoLens_Type_ZeroCheck, ¶m); + LOG(info) << "zero check " << (status == SENSOR_SDK_SUCC ? "success" : "failed"); + return status == SENSOR_SDK_SUCC; +} + +bool Camera::focus(Focus type) { + using namespace std::chrono_literals; + int focusType = (type == Focus::Far) ? SensorSDK_AutoLens_Type_FocusFar : SensorSDK_AutoLens_Type_FocusNear; + + SENSOR_SDK_AUTOLENS_PARAM_T autolens_param = {0}; + autolens_param.Params.Param_Base.nStop = 0; + autolens_param.Params.Param_Base.nSpeed = 10; + int status = SensorSdk_AutoLens_SetParam(0, focusType, &autolens_param); + + std::this_thread::sleep_for(10ms); + + autolens_param.Params.Param_Base.nStop = 1; + autolens_param.Params.Param_Base.nSpeed = 0; + status = SensorSdk_AutoLens_SetParam(0, focusType, &autolens_param); + return status == SENSOR_SDK_SUCC; +} + +bool Camera::zoom(Zoom type) { + using namespace std::chrono_literals; + int zoomType = (type == Zoom::In) ? SensorSDK_AutoLens_Type_ZoomIn : SensorSDK_AutoLens_Type_ZoomOut; + + SENSOR_SDK_AUTOLENS_PARAM_T autolens_param = {0}; + autolens_param.Params.Param_Base.nStop = 0; + autolens_param.Params.Param_Base.nSpeed = 10; + int status = SensorSdk_AutoLens_SetParam(0, zoomType, &autolens_param); + + std::this_thread::sleep_for(10ms); + + autolens_param.Params.Param_Base.nStop = 1; + autolens_param.Params.Param_Base.nSpeed = 0; + status = SensorSdk_AutoLens_SetParam(0, zoomType, &autolens_param); + + return status == SENSOR_SDK_SUCC; +} diff --git a/Main/Camera.h b/Main/Camera.h index 259cf45..50e07a7 100644 --- a/Main/Camera.h +++ b/Main/Camera.h @@ -1,11 +1,26 @@ #ifndef __CAMERA_H__ #define __CAMERA_H__ +#include "Core/Singleton.h" + class Camera { + friend class Core::Singleton; + public: - Camera(); + enum Focus { + Near, + Far, + }; + enum Zoom { + Out, + In, + }; + bool zeroCheck(); + bool focus(Focus type); + bool zoom(Zoom type); protected: + Camera(); void initIrCutGpio(); }; diff --git a/Main/HttpSession.cpp b/Main/HttpServer/HttpSession.cpp similarity index 100% rename from Main/HttpSession.cpp rename to Main/HttpServer/HttpSession.cpp diff --git a/Main/HttpSession.h b/Main/HttpServer/HttpSession.h similarity index 100% rename from Main/HttpSession.h rename to Main/HttpServer/HttpSession.h diff --git a/Main/ResponseUtility.cpp b/Main/HttpServer/ResponseUtility.cpp similarity index 100% rename from Main/ResponseUtility.cpp rename to Main/HttpServer/ResponseUtility.cpp diff --git a/Main/ResponseUtility.h b/Main/HttpServer/ResponseUtility.h similarity index 100% rename from Main/ResponseUtility.h rename to Main/HttpServer/ResponseUtility.h diff --git a/Main/ServiceLogic.cpp b/Main/HttpServer/ServiceLogic.cpp similarity index 97% rename from Main/ServiceLogic.cpp rename to Main/HttpServer/ServiceLogic.cpp index ef3cc96..02077bc 100644 --- a/Main/ServiceLogic.cpp +++ b/Main/HttpServer/ServiceLogic.cpp @@ -1,8 +1,8 @@ #include "ServiceLogic.h" +#include "../Settings.h" #include "Core/Logger.h" #include "Core/Singleton.h" #include "HttpSession.h" -#include "Settings.h" #include #include #include diff --git a/Main/ServiceLogic.h b/Main/HttpServer/ServiceLogic.h similarity index 95% rename from Main/ServiceLogic.h rename to Main/HttpServer/ServiceLogic.h index 51c3e43..261fc37 100644 --- a/Main/ServiceLogic.h +++ b/Main/HttpServer/ServiceLogic.h @@ -1,7 +1,7 @@ #ifndef SERVICELOGIC_H #define SERVICELOGIC_H -#include "Application.h" +#include "../Application.h" #include "ResponseUtility.h" #include #include diff --git a/Main/WebRTC/SignalServer.cpp b/Main/WebRTC/SignalServer.cpp index 350e8d0..7ec820e 100644 --- a/Main/WebRTC/SignalServer.cpp +++ b/Main/WebRTC/SignalServer.cpp @@ -1,7 +1,7 @@ #include "SignalServer.h" #include "../Application.h" -#include "../HttpSession.h" #include "Core/Logger.h" +#include "HttpServer/HttpSession.h" #include "WebSocketSignalSession.h" #include