From cf6e2f8e61c1cdd0557bdca106460c873b0417fa Mon Sep 17 00:00:00 2001 From: wyc <1104749580@qq.com> Date: Mon, 10 Aug 2026 09:36:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0vs2026?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeUserPresets.json | 3 +- .../Local_Server/Data_Source/Base_Station.cpp | 69 +++++++-------- toolchain/vs2019.cmake | 88 ------------------- toolchain/vs2026.cmake | 5 ++ toolchain/vs2026.json | 37 ++++++++ 5 files changed, 78 insertions(+), 124 deletions(-) create mode 100644 toolchain/vs2026.cmake create mode 100644 toolchain/vs2026.json diff --git a/CMakeUserPresets.json b/CMakeUserPresets.json index 82f97e5..c679bf2 100644 --- a/CMakeUserPresets.json +++ b/CMakeUserPresets.json @@ -1,8 +1,9 @@ { "version": 4, "include": [ - "toolchain/vs2022.json", "toolchain/vs2019.json", + "toolchain/vs2022.json", + "toolchain/vs2026.json", "D:\\ae\\env\\win_ubuntu\\win_ubuntu2004_15.1.0\\releases_gcc-15.1.0_x86_64-w64-mingw32\\preset.json" ] } \ No newline at end of file diff --git a/module/Local_Server/Data_Source/Base_Station.cpp b/module/Local_Server/Data_Source/Base_Station.cpp index aa3989f..881380f 100644 --- a/module/Local_Server/Data_Source/Base_Station.cpp +++ b/module/Local_Server/Data_Source/Base_Station.cpp @@ -1,49 +1,48 @@ #include "Base_Station.h" +#include "../../../third_party/CPP_Core/src/Psc_Cpp_Core/socket/Socket.h" namespace SSR { struct HULC_Status_Message; } -double Base_Station::theoretical_detection_range_meters(double base_height_meters, - double target_height_meters) { - return static_cast(SSR::CPR::radio_line_of_sight_range_meters(base_height_meters, target_height_meters)); +double Base_Station::theoretical_detection_range_meters(double base_height_meters, double target_height_meters) { + return static_cast(SSR::CPR::radio_line_of_sight_range_meters(base_height_meters, target_height_meters)); } std::optional Base_Station::get_pos() { - std::lock_guard g(mtx); - if (!hulc.GPS_has_valid_fix()) { - return std::nullopt; - } - return SSR::Position_3D{hulc.get_latitude(), hulc.get_longitude(), static_cast(hulc.Alt)}; + std::lock_guard g(mtx); + if (!hulc.GPS_has_valid_fix()) { + return std::nullopt; + } + return SSR::Position_3D{hulc.get_latitude(), hulc.get_longitude(), static_cast(hulc.Alt)}; } bool Base_Station::has_valid_position() { - std::lock_guard g(mtx); - return hulc.GPS_has_valid_fix(); + std::lock_guard g(mtx); + return hulc.GPS_has_valid_fix(); } -void Base_Station::set_msg(const SSR::HULC_Status_Message &msg) { - std::lock_guard g(mtx); - hulc = msg; - if (handle_when_updated) - handle_when_updated(msg); +void Base_Station::set_msg(const SSR::HULC_Status_Message& msg) { + std::lock_guard g(mtx); + hulc = msg; + if (handle_when_updated) + handle_when_updated(msg); } std::string Base_Station::to_string() { - std::lock_guard g(mtx); - return "BaseStation:[" + std::to_string(hulc.get_latitude()) + ", " + - std::to_string(hulc.get_longitude()) + "]"; + std::lock_guard g(mtx); + return "BaseStation:[" + std::to_string(hulc.get_latitude()) + ", " + std::to_string(hulc.get_longitude()) + "]"; } Psc::JSON Base_Station::to_Json() { - std::lock_guard g(mtx); - auto ret = Psc::JSON::object(); - ret.append({"序列号", hulc.SerNum}); - ret.append({"状态标志", hulc.Flags}); - ret.append({"内部使用", hulc.I_U_}); - ret.append({"时间", Psc::utc_2_local_time(hulc.xTime)}); - ret.append({"卫星数量", hulc.Sat}); - ret.append({"HDOP", hulc.get_HDOP()}); - ret.append({"GPS设备检测到", hulc.GPS_device_detected()}); - ret.append({"GPS有效", hulc.GPS_valid()}); - ret.append({"GPS有效定位", hulc.GPS_has_valid_fix()}); - ret.append({"has_valid_position", hulc.GPS_has_valid_fix()}); - ret.append({"GPS高精度时间", hulc.GPS_high_accuracy_time()}); - ret.append({"启动以来TX队列溢出", hulc.TX_queue_overflow_since_startup()}); - ret.append({"过去一秒TX队列溢出", hulc.TX_queue_overflow_last_second()}); - ret.append({"发现过多NMEA数据", hulc.excessive_NMEA_found()}); - return ret; + std::lock_guard g(mtx); + auto ret = Psc::JSON::object(); + ret.append({"序列号", hulc.SerNum}); + ret.append({"状态标志", hulc.Flags}); + ret.append({"内部使用", hulc.I_U_}); + ret.append({"时间", Psc::utc_2_local_time(hulc.xTime)}); + ret.append({"卫星数量", hulc.Sat}); + ret.append({"HDOP", hulc.get_HDOP()}); + ret.append({"GPS设备检测到", hulc.GPS_device_detected()}); + ret.append({"GPS有效", hulc.GPS_valid()}); + ret.append({"GPS有效定位", hulc.GPS_has_valid_fix()}); + ret.append({"has_valid_position", hulc.GPS_has_valid_fix()}); + ret.append({"GPS高精度时间", hulc.GPS_high_accuracy_time()}); + ret.append({"启动以来TX队列溢出", hulc.TX_queue_overflow_since_startup()}); + ret.append({"过去一秒TX队列溢出", hulc.TX_queue_overflow_last_second()}); + ret.append({"发现过多NMEA数据", hulc.excessive_NMEA_found()}); + return ret; } diff --git a/toolchain/vs2019.cmake b/toolchain/vs2019.cmake index 5f9cd9f..e69de29 100644 --- a/toolchain/vs2019.cmake +++ b/toolchain/vs2019.cmake @@ -1,88 +0,0 @@ - -#set(dir "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64") -# -#set(CMAKE_CXX_COMPILER "${dir}/cl.exe") -#set(CMAKE_C_COMPILER "${dir}/cl.exe") - -#get_filename_component(_compiler_dir "${CMAKE_CXX_COMPILER}" DIRECTORY) -# -#set(CMAKE_LINKER "${_compiler_dir}/link.bat") - - -#if(CMAKE_HOST_WIN32 AND CMAKE_GENERATOR MATCHES "Ninja") -# -# -# message(STATUS "CMAKE_GENERATOR = ${CMAKE_GENERATOR}") -# message(STATUS "CMAKE_GENERATOR_INSTANCE = ${CMAKE_GENERATOR_INSTANCE}") -# message(STATUS "CMAKE_GENERATOR_TOOLSET = ${CMAKE_GENERATOR_TOOLSET}") -# message(STATUS "CMAKE_GENERATOR_PLATFORM = ${CMAKE_GENERATOR_PLATFORM}") -# message(STATUS "CMAKE_MAKE_PROGRAM before = ${CMAKE_MAKE_PROGRAM}") -# -# file(GLOB CLION_NINJA_CANDIDATES -# "C:/Program Files/JetBrains/CLion */bin/ninja/win/x64/ninja.exe" -# ) -# -# list(SORT CLION_NINJA_CANDIDATES ORDER DESCENDING) -# -# if(CLION_NINJA_CANDIDATES) -# list(GET CLION_NINJA_CANDIDATES 0 CLION_NINJA_EXE) -# message(STATUS "CLION_NINJA_EXE = ${CLION_NINJA_EXE}") -# -# set(CMAKE_MAKE_PROGRAM "${CLION_NINJA_EXE}" CACHE FILEPATH "Ninja executable" FORCE) -# else() -# message(WARNING "CLion ninja.exe not found") -# endif() -# -# message(STATUS "CMAKE_MAKE_PROGRAM after = ${CMAKE_MAKE_PROGRAM}") -# -# # 输出 Ninja 版本 -# execute_process( -# COMMAND "${CMAKE_MAKE_PROGRAM}" --version -# OUTPUT_VARIABLE _ninja_version -# ERROR_VARIABLE _ninja_version_err -# RESULT_VARIABLE _ninja_version_ret -# OUTPUT_STRIP_TRAILING_WHITESPACE -# ERROR_STRIP_TRAILING_WHITESPACE -# ) -# -# message(STATUS "Ninja version ret = ${_ninja_version_ret}") -# message(STATUS "Ninja version = ${_ninja_version}") -# if(_ninja_version_err) -# message(STATUS "Ninja version err = ${_ninja_version_err}") -# endif() -# -# # 输出 Ninja Windows 编码模式 -# execute_process( -# COMMAND "${CMAKE_MAKE_PROGRAM}" -t wincodepage -# OUTPUT_VARIABLE _ninja_wincodepage -# ERROR_VARIABLE _ninja_wincodepage_err -# RESULT_VARIABLE _ninja_wincodepage_ret -# OUTPUT_STRIP_TRAILING_WHITESPACE -# ERROR_STRIP_TRAILING_WHITESPACE -# ) -# -# message(STATUS "Ninja wincodepage ret = ${_ninja_wincodepage_ret}") -# message(STATUS "Ninja wincodepage = ${_ninja_wincodepage}") -# if(_ninja_wincodepage_err) -# message(STATUS "Ninja wincodepage err = ${_ninja_wincodepage_err}") -# endif() -# -# # 输出当前 cmd 代码页 -# execute_process( -# COMMAND cmd /c chcp -# OUTPUT_VARIABLE _cmd_chcp -# ERROR_VARIABLE _cmd_chcp_err -# RESULT_VARIABLE _cmd_chcp_ret -# OUTPUT_STRIP_TRAILING_WHITESPACE -# ERROR_STRIP_TRAILING_WHITESPACE -# ) -# -# message(STATUS "cmd chcp ret = ${_cmd_chcp_ret}") -# message(STATUS "cmd chcp = ${_cmd_chcp}") -# if(_cmd_chcp_err) -# message(STATUS "cmd chcp err = ${_cmd_chcp_err}") -# endif() -#endif() - - - diff --git a/toolchain/vs2026.cmake b/toolchain/vs2026.cmake new file mode 100644 index 0000000..fbea070 --- /dev/null +++ b/toolchain/vs2026.cmake @@ -0,0 +1,5 @@ + +set(dir "C:/Program Files/Microsoft Visual Studio/18/Enterprise/VC/Tools/MSVC/14.51.36231/bin/Hostx64/x64") + +set(CMAKE_CXX_COMPILER "${dir}/cl.bat") +set(CMAKE_C_COMPILER "${dir}/cl.bat") diff --git a/toolchain/vs2026.json b/toolchain/vs2026.json new file mode 100644 index 0000000..dc87e51 --- /dev/null +++ b/toolchain/vs2026.json @@ -0,0 +1,37 @@ +{ + "version": 10, + "cmakeMinimumRequired": { + "major": 3, + "minor": 21, + "patch": 0 + }, + "configurePresets": [ + { + "name": "vs2026", + "hidden": true, + "generator": "Ninja", + "cacheVariables": { + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/toolchain/vs2026.cmake" + }, + "vendor": { + "jetbrains.com/clion": { + "toolchain": "vs2026" + } + } + }, + { + "name": "vs2026_debug", + "inherits": "vs2026", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + } + }, + { + "name": "vs2026_release", + "inherits": "vs2026", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release" + } + } + ] +} \ No newline at end of file