diff --git a/Release/database/XNSim.db b/Release/database/XNSim.db index bff1153..1afc36a 100644 Binary files a/Release/database/XNSim.db and b/Release/database/XNSim.db differ diff --git a/XNModels/CMakeLists.txt b/XNModels/CMakeLists.txt deleted file mode 100755 index 9ba1279..0000000 --- a/XNModels/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -cmake_minimum_required(VERSION 3.16) - -project(XNModels) - -add_subdirectory(XNATA04DataProcessor) -add_subdirectory(XNAerodynamics) -add_subdirectory(XNGroundHandling) -add_subdirectory(XNWeightBalance) \ No newline at end of file diff --git a/XNModels/XNATA04DataProcessor/.vscode/c_cpp_properties.json b/XNModels/XNATA04DataProcessor/.vscode/c_cpp_properties.json deleted file mode 100755 index 0b3cbd5..0000000 --- a/XNModels/XNATA04DataProcessor/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "configurations": [ - { - "compileCommands": "${workspaceFolder}/build/compile_commands.json", - "configurationProvider": "ms-vscode.cmake-tools" - } - ], - "version": 4 -} \ No newline at end of file diff --git a/XNModels/XNATA04DataProcessor/.vscode/settings.json b/XNModels/XNATA04DataProcessor/.vscode/settings.json deleted file mode 100755 index 37dc6cf..0000000 --- a/XNModels/XNATA04DataProcessor/.vscode/settings.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "files.associations": { - "*.cpp": "cpp", - "functional": "cpp", - "qhash": "cpp", - "qstringlist": "cpp", - "cctype": "cpp", - "clocale": "cpp", - "cmath": "cpp", - "cstdarg": "cpp", - "cstddef": "cpp", - "cstdio": "cpp", - "cstdlib": "cpp", - "cstring": "cpp", - "ctime": "cpp", - "cwchar": "cpp", - "cwctype": "cpp", - "array": "cpp", - "atomic": "cpp", - "bit": "cpp", - "*.tcc": "cpp", - "bitset": "cpp", - "chrono": "cpp", - "codecvt": "cpp", - "compare": "cpp", - "complex": "cpp", - "concepts": "cpp", - "condition_variable": "cpp", - "cstdint": "cpp", - "deque": "cpp", - "list": "cpp", - "map": "cpp", - "set": "cpp", - "unordered_map": "cpp", - "vector": "cpp", - "exception": "cpp", - "algorithm": "cpp", - "iterator": "cpp", - "memory": "cpp", - "memory_resource": "cpp", - "numeric": "cpp", - "optional": "cpp", - "random": "cpp", - "ratio": "cpp", - "regex": "cpp", - "string": "cpp", - "string_view": "cpp", - "system_error": "cpp", - "tuple": "cpp", - "type_traits": "cpp", - "utility": "cpp", - "initializer_list": "cpp", - "iomanip": "cpp", - "iosfwd": "cpp", - "iostream": "cpp", - "istream": "cpp", - "limits": "cpp", - "mutex": "cpp", - "new": "cpp", - "ostream": "cpp", - "ranges": "cpp", - "sstream": "cpp", - "stdexcept": "cpp", - "stop_token": "cpp", - "streambuf": "cpp", - "thread": "cpp", - "cinttypes": "cpp", - "typeindex": "cpp", - "typeinfo": "cpp", - "variant": "cpp", - "csignal": "cpp", - "any": "cpp", - "unordered_set": "cpp", - "fstream": "cpp", - "future": "cpp", - "span": "cpp" - } -} \ No newline at end of file diff --git a/XNModels/XNATA04DataProcessor/CMakeLists.txt b/XNModels/XNATA04DataProcessor/CMakeLists.txt deleted file mode 100755 index bb44890..0000000 --- a/XNModels/XNATA04DataProcessor/CMakeLists.txt +++ /dev/null @@ -1,61 +0,0 @@ -cmake_minimum_required(VERSION 3.16) - -project(XNATA04DataProcessor LANGUAGES CXX) - -set(MODEL_VERSION "1.0.0.0") - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -# 获取环境变量 -if(DEFINED ENV{XNCore}) - set(XNCore_PATH $ENV{XNCore}) -else() - message(FATAL_ERROR "Environment variable XNCore is not set.") -endif() - -# 添加 XNCore_PATH 下的 include 目录为包含目录 -include_directories(${XNCore_PATH}/include) -include_directories(${XNCore_PATH}/IDL) - -add_library(XNATA04DataProcessor SHARED - XNATA04DataProcessor_global.h - XNATA04DataProcessor.cpp - XNATA04DataProcessor.h - XNATA04DataProcessor_p.h -) - -set_target_properties(XNATA04DataProcessor PROPERTIES - LIBRARY_OUTPUT_NAME "libXNATA04DataProcessor.so.${MODEL_VERSION}" - PREFIX "" - SUFFIX "" - SKIP_BUILD_RPATH TRUE - BUILD_WITH_INSTALL_RPATH TRUE -) - -target_link_libraries(XNATA04DataProcessor PRIVATE - ${XNCore_PATH}/lib/libXNCore.so - ${XNCore_PATH}/lib/libC909_V1_Interface.so -) - -target_compile_definitions(XNATA04DataProcessor PRIVATE XNATA04DATAPROCESSOR_LIBRARY) - -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${XNCore_PATH}/Models" CACHE PATH "Install path prefix" FORCE) -endif() - -include(GNUInstallDirs) -install(TARGETS XNATA04DataProcessor - BUNDLE DESTINATION . - LIBRARY DESTINATION . - RUNTIME DESTINATION . -) - -# 添加自定义命令和目标以拷贝配置文件 -file(GLOB CONFIG_FILE "*.mcfg") - -# 使用 install 命令在安装时拷贝配置文件 -install(FILES ${CONFIG_FILE} - DESTINATION ${CMAKE_INSTALL_PREFIX} - RENAME "XNATA04DataProcessor_V${MODEL_VERSION}.mcfg" -) \ No newline at end of file diff --git a/XNModels/XNATA04DataProcessor/CMakeLists.txt.user b/XNModels/XNATA04DataProcessor/CMakeLists.txt.user deleted file mode 100755 index 3432be7..0000000 --- a/XNModels/XNATA04DataProcessor/CMakeLists.txt.user +++ /dev/null @@ -1,424 +0,0 @@ - - - - - - EnvironmentId - {5b958118-2d32-49ab-8eab-9018ac74c7d6} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - 0 - false - true - false - 2 - true - true - 0 - 8 - true - false - 1 - true - true - true - *.md, *.MD, Makefile - false - true - true - - - - ProjectExplorer.Project.PluginSettings - - - true - false - true - true - true - true - - false - - - 0 - true - - true - true - Builtin.DefaultTidyAndClazy - 5 - true - - - - true - - - true - true - - - - - ProjectExplorer.Project.Target.0 - - Desktop - Desktop Qt 6.7.2 - Desktop Qt 6.7.2 - qt.qt6.672.linux_gcc_64_kit - 0 - 0 - 0 - - Debug - 2 - false - - -DCMAKE_GENERATOR:STRING=Unix Makefiles --DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} --DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} --DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} --DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} --DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} --DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake --DCMAKE_BUILD_TYPE:STRING=Debug - 0 - /media/jin/E/MyCode/xnsim/XNModels/XNAerodynamics/build/Desktop_Qt_6_7_2-Debug - - - - - all - - false - - true - 构建 - CMakeProjectManager.MakeStep - - 1 - 构建 - 构建 - ProjectExplorer.BuildSteps.Build - - - - - - clean - - false - - true - 构建 - CMakeProjectManager.MakeStep - - 1 - 清除 - 清除 - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - Debug - CMakeProjectManager.CMakeBuildConfiguration - - - Release - 2 - false - - -DCMAKE_GENERATOR:STRING=Unix Makefiles --DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} --DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} --DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} --DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} --DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} --DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake --DCMAKE_BUILD_TYPE:STRING=Release - /media/jin/E/MyCode/xnsim/XNModels/XNAerodynamics/build/Desktop_Qt_6_7_2-Release - - - - - all - - false - - true - CMakeProjectManager.MakeStep - - 1 - 构建 - 构建 - ProjectExplorer.BuildSteps.Build - - - - - - clean - - false - - true - CMakeProjectManager.MakeStep - - 1 - 清除 - 清除 - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - Release - CMakeProjectManager.CMakeBuildConfiguration - - - RelWithDebInfo - 2 - false - - -DCMAKE_GENERATOR:STRING=Unix Makefiles --DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} --DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} --DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} --DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} --DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} --DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake --DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - /media/jin/E/MyCode/xnsim/XNModels/XNAerodynamics/build/Desktop_Qt_6_7_2-RelWithDebInfo - - - - - all - - false - - true - CMakeProjectManager.MakeStep - - 1 - 构建 - 构建 - ProjectExplorer.BuildSteps.Build - - - - - - clean - - false - - true - CMakeProjectManager.MakeStep - - 1 - 清除 - 清除 - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - Release with Debug Information - CMakeProjectManager.CMakeBuildConfiguration - - - RelWithDebInfo - 2 - false - - -DCMAKE_GENERATOR:STRING=Unix Makefiles --DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} --DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} --DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} --DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} --DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} --DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake --DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - 0 - /media/jin/E/MyCode/xnsim/XNModels/XNAerodynamics/build/Desktop_Qt_6_7_2-Profile - - - - - all - - false - - true - CMakeProjectManager.MakeStep - - 1 - 构建 - 构建 - ProjectExplorer.BuildSteps.Build - - - - - - clean - - false - - true - CMakeProjectManager.MakeStep - - 1 - 清除 - 清除 - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - Profile - CMakeProjectManager.CMakeBuildConfiguration - - - MinSizeRel - 2 - false - - -DCMAKE_GENERATOR:STRING=Unix Makefiles --DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} --DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} --DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} --DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} --DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} --DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake --DCMAKE_BUILD_TYPE:STRING=MinSizeRel - /media/jin/E/MyCode/xnsim/XNModels/XNAerodynamics/build/Desktop_Qt_6_7_2-MinSizeRel - - - - - all - - false - - true - CMakeProjectManager.MakeStep - - 1 - 构建 - 构建 - ProjectExplorer.BuildSteps.Build - - - - - - clean - - false - - true - CMakeProjectManager.MakeStep - - 1 - 清除 - 清除 - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - Minimum Size Release - CMakeProjectManager.CMakeBuildConfiguration - - 5 - - - 0 - 部署 - 部署 - ProjectExplorer.BuildSteps.Deploy - - 1 - - false - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - 0 - true - - 2 - - false - -e cpu-cycles --call-graph dwarf,4096 -F 250 - - ProjectExplorer.CustomExecutableRunConfiguration - - false - true - true - - 1 - - - - ProjectExplorer.Project.TargetCount - 1 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/XNModels/XNATA04DataProcessor/XNATA04DataProcessor.cpp b/XNModels/XNATA04DataProcessor/XNATA04DataProcessor.cpp deleted file mode 100755 index 2a7d433..0000000 --- a/XNModels/XNATA04DataProcessor/XNATA04DataProcessor.cpp +++ /dev/null @@ -1,584 +0,0 @@ -#include "XNATA04DataProcessor.h" -#include "XNATA04DataProcessor_p.h" -#include -#include -#include - -XN_MODEL_INITIALIZE(XNATA04DataProcessor) - -XNATA04DataProcessor::XNATA04DataProcessor() : XNModelObject(new XNATA04DataProcessorPrivate()) -{ -} - -XNATA04DataProcessor::~XNATA04DataProcessor() -{ -} - -XNATA04DataProcessor::XNATA04DataProcessor(PrivateType *p) : XNModelObject(p) -{ -} - -void XNATA04DataProcessor::Initialize() -{ - T_D(); - XNModelObject::Initialize(); -} - -void XNATA04DataProcessor::PrepareForExecute() -{ - T_D(); - XNModelObject::PrepareForExecute(); - RegisterRTEventHandler("C909::ATA04::AeroInput", std::bind(&XNATA04DataProcessor::OnAeroInput, - this, std::placeholders::_1)); - RegisterRTEventHandler("C909::ATA04::WbInput", std::bind(&XNATA04DataProcessor::OnWbInput, this, - std::placeholders::_1)); - RegisterRTEventHandler("C909::ATA04::GhInput", std::bind(&XNATA04DataProcessor::OnGhInput, this, - std::placeholders::_1)); - d->_aeroInputInterface.Initialize(GetFramework(), GetUniqueId(), 2); - d->_aeroOutputInterface.Initialize(GetFramework(), GetUniqueId(), 1); - d->_aeroHeartbeatInterface.Initialize(GetFramework(), GetUniqueId(), 1); - d->_wbInputInterface.Initialize(GetFramework(), GetUniqueId(), 2); - d->_wbOutputInterface.Initialize(GetFramework(), GetUniqueId(), 1); - d->_wbHeartbeatInterface.Initialize(GetFramework(), GetUniqueId(), 1); - d->_ghInputInterface.Initialize(GetFramework(), GetUniqueId(), 2); - d->_ghOutputInterface.Initialize(GetFramework(), GetUniqueId(), 1); - d->_ghHeartbeatInterface.Initialize(GetFramework(), GetUniqueId(), 1); -} - -void XNATA04DataProcessor::StepUpdate() -{ - T_D(); - XNModelObject::StepUpdate(); - SendUdpData(); - //SendUdpTestData(); -} - -void XNATA04DataProcessor::SendUdpData() -{ - T_D(); - SendAeroOutput(); - SendWbOutput(); - SendGhOutput(); - SendAeroHeartbeat(); - SendWbHeartbeat(); - SendGhHeartbeat(); -} - -void XNATA04DataProcessor::SendAeroOutput() -{ - T_D(); - XNByteArray outputData = d->_aeroOutputInterface.getUDPPackage(); - //填写数据头 - outputData[0] = 0xa6; //XNSim - outputData[1] = 0xc0; //C909 - outputData[2] = 0x04; //ATA04 - outputData[3] = 0x00; //Aerodynamics - outputData[4] = 0x01; //Output - outputData[5] = 0x01; //向外部发送 - - int dataSize = (int)outputData[6] << 8 | (int)outputData[7]; - if (dataSize != outputData.size()) { - LOG_WARNING("气动输出数据包大小错误,不向UDP发送!dataSize:%1 outputData.size():%2", - dataSize, outputData.size()); - return; - } - - TriggerRTEvent("SendUDPData", std::any(outputData)); -} - -void XNATA04DataProcessor::SendGhOutput() -{ - T_D(); - XNByteArray outputData = d->_ghOutputInterface.getUDPPackage(); - //填写数据头 - outputData[0] = 0xa6; //XNSim - outputData[1] = 0xc0; //C909 - outputData[2] = 0x04; //ATA04 - outputData[3] = 0x01; //GroundHandling - outputData[4] = 0x01; //Output - outputData[5] = 0x01; //向外部发送 - - int dataSize = (long)outputData[6] << 8 | (long)outputData[7]; - if (dataSize != outputData.size()) { - LOG_WARNING("地操输出数据包大小错误,不向UDP发送!dataSize:%1 outputData.size():%2", - dataSize, outputData.size()); - return; - } - - TriggerRTEvent("SendUDPData", std::any(outputData)); -} - -void XNATA04DataProcessor::SendWbOutput() -{ - T_D(); - XNByteArray outputData = d->_wbOutputInterface.getUDPPackage(); - //填写数据头 - outputData[0] = 0xa6; //XNSim - outputData[1] = 0xc0; //C909 - outputData[2] = 0x04; //ATA04 - outputData[3] = 0x02; //WeightBalance - outputData[4] = 0x01; //Output - outputData[5] = 0x01; //向外部发送 - - int dataSize = (long)outputData[6] << 8 | (long)outputData[7]; - if (dataSize != outputData.size()) { - LOG_WARNING("质量输出数据包大小错误,不向UDP发送!dataSize:%1 outputData.size():%2", - dataSize, outputData.size()); - return; - } - - TriggerRTEvent("SendUDPData", std::any(outputData)); -} - -void XNATA04DataProcessor::SendAeroHeartbeat() -{ - T_D(); - XNByteArray outputData = d->_aeroHeartbeatInterface.getUDPPackage(); - //填写数据头 - outputData[0] = 0xa6; //XNSim - outputData[1] = 0xc0; //C909 - outputData[2] = 0x04; //ATA04 - outputData[3] = 0x00; //Aerodynamics - outputData[4] = 0x02; //Heartbeat - outputData[5] = 0x01; //向外部发送 - - int dataSize = (long)outputData[6] << 8 | (long)outputData[7]; - if (dataSize != outputData.size()) { - LOG_WARNING("气动心跳数据包大小错误,不向UDP发送!dataSize:%1 outputData.size():%2", - dataSize, outputData.size()); - return; - } - - TriggerRTEvent("SendUDPData", std::any(outputData)); -} - -void XNATA04DataProcessor::SendGhHeartbeat() -{ - T_D(); - XNByteArray outputData = d->_ghHeartbeatInterface.getUDPPackage(); - //填写数据头 - outputData[0] = 0xa6; //XNSim - outputData[1] = 0xc0; //C909 - outputData[2] = 0x04; //ATA04 - outputData[3] = 0x01; //GroundHandling - outputData[4] = 0x02; //Heartbeat - outputData[5] = 0x01; //向外部发送 - - int dataSize = (long)outputData[6] << 8 | (long)outputData[7]; - if (dataSize != outputData.size()) { - LOG_WARNING("地操心跳数据包大小错误,不向UDP发送!dataSize:%1 outputData.size():%2", - dataSize, outputData.size()); - return; - } - - TriggerRTEvent("SendUDPData", std::any(outputData)); -} - -void XNATA04DataProcessor::SendWbHeartbeat() -{ - T_D(); - XNByteArray outputData = d->_wbHeartbeatInterface.getUDPPackage(); - //填写数据头 - outputData[0] = 0xa6; //XNSim - outputData[1] = 0xc0; //C909 - outputData[2] = 0x04; //ATA04 - outputData[3] = 0x02; //WeightBalance - outputData[4] = 0x02; //Heartbeat - outputData[5] = 0x01; //向外部发送 - - int dataSize = (long)outputData[6] << 8 | (long)outputData[7]; - if (dataSize != outputData.size()) { - LOG_WARNING("质量心跳数据包大小错误,不向UDP发送!dataSize:%1 outputData.size():%2", - dataSize, outputData.size()); - return; - } - - TriggerRTEvent("SendUDPData", std::any(outputData)); -} - -void XNATA04DataProcessor::OnGhInput(const std::any &data) -{ - T_D(); - XNByteArray inputData = std::any_cast(data); - - // 检查数据包头 - if (inputData[0] != 0xa6) { - LOG_WARNING("接收到不是XNSim的数据包!"); - return; - } - if (inputData[1] != 0xc0) { - LOG_WARNING("接收到不是C909的数据包!"); - return; - } - if (inputData[2] != 0x04) { - LOG_WARNING("接收到不是ATA04的数据包!"); - return; - } - if (inputData[3] != 0x01) { - LOG_WARNING("接收到不是GroundHandling的数据包!"); - return; - } - if (inputData[4] != 0x00) { - LOG_WARNING("接收到不是输入结构体的数据包!"); - return; - } - if (inputData[5] != 0x00) { - LOG_WARNING("接收到不是输入数据包!"); - return; - } - size_t size = inputData[6]; - size = size << 8 | inputData[7]; - if (size != inputData.size()) { - LOG_WARNING("接收到的数据包大小不正确!"); - return; - } - - d->_ghInputInterface.setDataByUDPPackage(inputData); -} - -void XNATA04DataProcessor::OnAeroInput(const std::any &data) -{ - T_D(); - XNByteArray inputData = std::any_cast(data); - // 检查数据包头 - if (inputData[0] != 0xa6) { - LOG_WARNING("接收到不是XNSim的数据包!"); - return; - } - if (inputData[1] != 0xc0) { - LOG_WARNING("接收到不是C909的数据包!"); - return; - } - if (inputData[2] != 0x04) { - LOG_WARNING("接收到不是ATA04的数据包!"); - return; - } - if (inputData[3] != 0x00) { - LOG_WARNING("接收到不是Aerodynamics的数据包!"); - return; - } - if (inputData[4] != 0x00) { - LOG_WARNING("接收到不是输入结构体的数据包!"); - return; - } - if (inputData[5] != 0x00) { - LOG_WARNING("接收到不是输入数据包!"); - return; - } - size_t size = inputData[6]; - size = size << 8 | inputData[7]; - if (size != inputData.size()) { - LOG_WARNING("接收到的数据包大小不正确!"); - return; - } - d->_aeroInputInterface.setDataByUDPPackage(inputData); -} - -void XNATA04DataProcessor::OnWbInput(const std::any &data) -{ - T_D(); - XNByteArray inputData = std::any_cast(data); - // 检查数据包头 - if (inputData[0] != 0xa6) { - LOG_WARNING("接收到不是XNSim的数据包!"); - return; - } - if (inputData[1] != 0xc0) { - LOG_WARNING("接收到不是C909的数据包!"); - return; - } - if (inputData[2] != 0x04) { - LOG_WARNING("接收到不是ATA04的数据包!"); - return; - } - if (inputData[3] != 0x02) { - LOG_WARNING("接收到不是WeightBalance的数据包!"); - return; - } - if (inputData[4] != 0x00) { - LOG_WARNING("接收到不是输入结构体的数据包!"); - return; - } - if (inputData[5] != 0x00) { - LOG_WARNING("接收到不是输入数据包!"); - return; - } - size_t size = inputData[6]; - size = size << 8 | inputData[7]; - if (size != inputData.size()) { - LOG_WARNING("接收到的数据包大小不正确!"); - return; - } - d->_wbInputInterface.setDataByUDPPackage(inputData); -} - -// void XNATA04DataProcessor::SendUdpTestData() -// { -// Q_D(XNATA04DataProcessor); - -// // 创建气动输入(AeroInput)数据包 -// QByteArray aeroData; -// QDataStream aeroStream(&aeroData, QIODevice::WriteOnly); -// aeroStream.setByteOrder(QDataStream::LittleEndian); -// aeroStream.setVersion(QDataStream::Qt_6_0); - -// // 气动输入数据包头 (0x0b=从外部输入, 0x04=ATA04, 0x00=气动模型, 0x00=输入数据) -// quint8 aeroHeader[6] = {0x0b, 0x04, 0x00, 0x00, 0x00, 0x00}; // 最后两个字节用于大小 -// aeroStream << aeroHeader[0] << aeroHeader[1] << aeroHeader[2] << aeroHeader[3] << aeroHeader[4] -// << aeroHeader[5]; - -// // 气动数据字段 -// aeroStream << (double)-2.0; // alpha -// aeroStream << (double)0.0; // alpdot -// aeroStream << (double)0.0; // beta -// aeroStream << (double)10000.0; // press_alt -// aeroStream << (double)360.0; // tas -// aeroStream << (double)0.3; // mach -// aeroStream << (double)0.0; // nx -// aeroStream << (double)0.0; // ny -// aeroStream << (double)1.0; // nz -// aeroStream << (double)0.0; // p -// aeroStream << (double)0.0; // q -// aeroStream << (double)0.0; // r -// aeroStream << (double)110.0; // qbar -// aeroStream << (double)0.0; // blcg -// aeroStream << (double)650.0; // bscg -// aeroStream << (double)7.0; // wlcg -// aeroStream << (double)-2.0; // stab - -// // ail_f8 数组,需要10个double -// for (int i = 0; i < 10; i++) { -// aeroStream << (double)0.0; -// } - -// // elv_f8 数组,需要4个double -// for (int i = 0; i < 4; i++) { -// aeroStream << (double)0.0; -// } - -// // rud_f8 数组,需要2个double -// for (int i = 0; i < 2; i++) { -// aeroStream << (double)0.0; -// } - -// // gear_f8 数组,需要7个double -// for (int i = 0; i < 7; i++) { -// aeroStream << (double)1.0; -// } - -// // flap_f8 数组,需要10个double -// for (int i = 0; i < 10; i++) { -// aeroStream << (double)41.5; -// } - -// // slat_f8 数组,需要20个double -// for (int i = 0; i < 20; i++) { -// aeroStream << (double)20.855; -// } - -// // spl_f8 数组,需要20个double -// for (int i = 0; i < 20; i++) { -// aeroStream << (double)0.0; -// } - -// // tnet_f8 数组,需要4个double -// for (int i = 0; i < 4; i++) { -// aeroStream << (double)8000.0; -// } - -// // kice_f8 数组,需要20个double -// for (int i = 0; i < 20; i++) { -// aeroStream << (double)0.0; -// } - -// // alt_agl -// aeroStream << (double)2500.0; - -// // 更新数据包大小(使用两个字节) -// quint16 size = aeroData.size(); -// aeroData[4] = (size >> 8) & 0xFF; // 高字节 -// aeroData[5] = size & 0xFF; // 低字节 - -// // 创建地面操作输入(GhInput)数据包 -// QByteArray ghData; -// QDataStream ghStream(&ghData, QIODevice::WriteOnly); -// ghStream.setByteOrder(QDataStream::LittleEndian); -// ghStream.setVersion(QDataStream::Qt_6_0); - -// // 地面操作输入数据包头 (0x0b=从外部输入, 0x04=ATA04, 0x01=地面操作模型, 0x00=输入数据) -// quint8 ghHeader[6] = {0x0b, 0x04, 0x01, 0x00, 0x00, 0x00}; // 最后两个字节用于大小 -// ghStream << ghHeader[0] << ghHeader[1] << ghHeader[2] << ghHeader[3] << ghHeader[4] -// << ghHeader[5]; - -// // 地面操作数据字段 -// ghStream << (quint8)0; // frz_l1 -// ghStream << (quint8)0; // chocks_l1 -// ghStream << (double)8.0; // alt_agl_f8 -// ghStream << (quint8)0; // frzflt_l1 -// ghStream << (double)0.0; // p_f8 -// ghStream << (double)0.0; // q_f8 -// ghStream << (double)0.0; // r_f8 -// ghStream << (double)50.0; // ug_f8 -// ghStream << (double)0.0; // vg_f8 -// ghStream << (double)0.0; // wg_f8 -// ghStream << (double)0.0; // blcg_f8 -// ghStream << (double)649.3; // bscg_f8 -// ghStream << (double)10.0; // wlcg_f8 -// ghStream << (quint8)0; // pb_active_l1 -// ghStream << (double)0.0; // pb_towforce_f8 - -// // brake_torq_f8 数组 3x2 -// for (int i = 0; i < 3; i++) { -// for (int j = 0; j < 2; j++) { -// ghStream << (double)0.0; -// } -// } - -// // gear_f8 数组,需要3个double -// for (int i = 0; i < 3; i++) { -// ghStream << (double)1.0; -// } - -// // gsteer_f8 数组,需要10个double -// for (int i = 0; i < 10; i++) { -// ghStream << (double)0.0; -// } - -// // tire_pres_f8 数组 3x2 -// for (int i = 0; i < 3; i++) { -// for (int j = 0; j < 2; j++) { -// if (i == 0) { -// ghStream << (double)98.0; // 98 kpa的胎压 -// } else { -// ghStream << (double)140.0; // 140 kpa的胎压 -// } -// } -// } - -// // 4个double数组 -// for (int i = 0; i < 4; i++) { -// ghStream << (double)0.0; -// } - -// ghStream << (quint8)0; // onjax_l1 - -// // contdep_f8 数组,需要7个double -// ghStream << (double)1.0; -// for (int i = 1; i < 7; i++) { -// ghStream << (double)0.0; -// } - -// ghStream << (double)0.0; // thetag_f8 -// ghStream << (double)0.0; // phig_f8 -// ghStream << (qint32)0; // rwyrgh_i2 -// ghStream << (double)0.0; // rwyhdg_f8 -// ghStream << (quint8)0; // reset_braketemp_l1 -// ghStream << (quint8)0; // reset_tirepress_l1 -// ghStream << (double)16.0; // temp_c_f8 - -// // brake_temp_f8 数组 3x2 -// for (int i = 0; i < 3; i++) { -// for (int j = 0; j < 2; j++) { -// ghStream << (double)16.0; // 16度的刹车温度 -// } -// } - -// // tire_tburst_l1 数组 3x2 -// for (int i = 0; i < 3; i++) { -// for (int j = 0; j < 2; j++) { -// ghStream << (char)0; -// } -// } - -// // tire_tflat_l1 数组 3x2 -// for (int i = 0; i < 3; i++) { -// for (int j = 0; j < 2; j++) { -// ghStream << (char)0; -// } -// } - -// ghStream << (quint8)0; // brk_reset_tpres_l1 - -// // rcon_ci_f8 数组,需要14个double -// ghStream << (double)1.0; -// for (int i = 1; i < 14; i++) { -// ghStream << (double)0.0; -// } - -// ghStream << (qint32)2; // gsteer_state_i4 -// ghStream << (quint8)1; // trim_active_l1 -// ghStream << (double)0.0; // phi_deg_f8 -// ghStream << (double)0.0; // theta_deg_f8 -// ghStream << (double)0.0; // psi_deg_f8 -// ghStream << (quint8)1; // resetint_l1 - -// // 更新数据包大小(使用两个字节) -// size = ghData.size(); -// ghData[4] = (size >> 8) & 0xFF; // 高字节 -// ghData[5] = size & 0xFF; // 低字节 - -// // 创建重量平衡输入(WbInput)数据包 -// QByteArray wbData; -// QDataStream wbStream(&wbData, QIODevice::WriteOnly); -// wbStream.setByteOrder(QDataStream::LittleEndian); -// wbStream.setVersion(QDataStream::Qt_6_0); - -// // 重量平衡输入数据包头 (0x0b=从外部输入, 0x04=ATA04, 0x02=重量平衡模型, 0x00=输入数据) -// quint8 wbHeader[6] = {0x0b, 0x04, 0x02, 0x00, 0x00, 0x00}; // 最后两个字节用于大小 -// wbStream << wbHeader[0] << wbHeader[1] << wbHeader[2] << wbHeader[3] << wbHeader[4] -// << wbHeader[5]; - -// // 重量平衡数据字段 -// wbStream << (double)0.0; // theta_deg_f8 -// wbStream << (double)0.0; // phi_deg_f8 -// wbStream << (double)0.0; // psi_deg_f8 -// wbStream << (quint8)0; // gear_mode_l1 -// wbStream << (double)82574.0; // acset_gw_f8 (60000kg飞机重量) -// wbStream << (double)0.1215; // acset_cg_f8 (25%MAC重心位置) - -// // acset_tankfuel_f4 数组,需要20个float -// for (int i = 0; i < 20; i++) { -// wbStream << (double)(i < 2 ? 4541.0 : 0.0); // 前2个油箱各4541kg -// } - -// wbStream << (double)9082.0; // acset_totfuel_f8 (总油量9082kg) -// wbStream << (double)73492.0; // acset_zfw_f8 (零油重73492kg) -// wbStream << (double)0.12; // acset_zfwcg_f8 (零油重重心24%MAC) - -// // eng_efsep_l1 数组,需要4个char -// for (int i = 0; i < 4; i++) { -// wbStream << (char)0; -// } - -// // fuel_f8 数组,需要20个double -// for (int i = 0; i < 20; i++) { -// wbStream << (double)(i < 2 ? 4541.0 : 0.0); // 前2个油箱各4541kg -// } - -// wbStream << (double)1.0; // gear_avg_f8 - -// // kice_f8 数组,需要20个double -// for (int i = 0; i < 20; i++) { -// wbStream << (double)0.0; -// } - -// wbStream << (quint8)1; // bycglim_l1 -// wbStream << (quint8)1; // bygwlim_l1 -// wbStream << (quint8)0; // frz_l1 -// wbStream << (quint8)0; // zcgfrz_l1 -// wbStream << (quint8)0; // zcgfrz_grfx_l1 -// wbStream << (quint8)0; // ycgfrz_l1 -// wbStream << (quint8)0; // inertfrz_l1 -// wbStream << (double)80000.0; // potreq_gw_f8 -// wbStream << (double)0.2; // potreq_gwcg_f8 - -// // 更新数据包大小(使用两个字节) -// size = wbData.size(); -// wbData[4] = (size >> 8) & 0xFF; // 高字节 -// wbData[5] = size & 0xFF; // 低字节 - -// // 发送测试数据包 -// TriggerRTEvent("SendTestUDPData", QVariant::fromValue(aeroData)); -// TriggerRTEvent("SendTestUDPData", QVariant::fromValue(ghData)); -// TriggerRTEvent("SendTestUDPData", QVariant::fromValue(wbData)); -// } diff --git a/XNModels/XNATA04DataProcessor/XNATA04DataProcessor.h b/XNModels/XNATA04DataProcessor/XNATA04DataProcessor.h deleted file mode 100755 index babe739..0000000 --- a/XNModels/XNATA04DataProcessor/XNATA04DataProcessor.h +++ /dev/null @@ -1,49 +0,0 @@ -#pragma once -#include "XNATA04DataProcessor_global.h" -#include - -struct XNATA04DataProcessorPrivate; - -class XNATA04DATAPROCESSOR_EXPORT XNATA04DataProcessor : public XNModelObject -{ - XN_METATYPE(XNATA04DataProcessor, XNModelObject) - XN_DECLARE_PRIVATE(XNATA04DataProcessor) -public: - XNATA04DataProcessor(); - virtual ~XNATA04DataProcessor(); - -protected: - XNATA04DataProcessor(PrivateType *p); - -public: - virtual void Initialize() override; - virtual void PrepareForExecute() override; - -public: - virtual void StepUpdate() override; - -private: - void OnAeroInput(const std::any &data); - - void OnWbInput(const std::any &data); - - void OnGhInput(const std::any &data); - - void SendUdpData(); - - void SendAeroOutput(); - - void SendWbOutput(); - - void SendGhOutput(); - - void SendAeroHeartbeat(); - - void SendWbHeartbeat(); - - void SendGhHeartbeat(); - - //void SendUdpTestData(); -}; - -XNCLASS_PTR_DECLARE(XNATA04DataProcessor) diff --git a/XNModels/XNATA04DataProcessor/XNATA04DataProcessor.mcfg b/XNModels/XNATA04DataProcessor/XNATA04DataProcessor.mcfg deleted file mode 100755 index 6bb280c..0000000 --- a/XNModels/XNATA04DataProcessor/XNATA04DataProcessor.mcfg +++ /dev/null @@ -1,13 +0,0 @@ - - - XNATA04DataProcessor - ATA04数据处理器 - Jin - 1.0.0 - 2025-03-10 10:00:00 - 2025-03-10 10:00:00 - 0-0 - 98 - - - diff --git a/XNModels/XNATA04DataProcessor/XNATA04DataProcessor_global.h b/XNModels/XNATA04DataProcessor/XNATA04DataProcessor_global.h deleted file mode 100755 index 20f91ed..0000000 --- a/XNModels/XNATA04DataProcessor/XNATA04DataProcessor_global.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef XNATA04DATAPROCESSOR_GLOBAL_H -#define XNATA04DATAPROCESSOR_GLOBAL_H - -#if defined(XNATA04DATAPROCESSOR_LIBRARY) -# define XNATA04DATAPROCESSOR_EXPORT __attribute__((visibility("default"))) -#else -# define XNATA04DATAPROCESSOR_EXPORT __attribute__((visibility("default"))) -#endif - -#endif // XNATA04DATAPROCESSOR_GLOBAL_H diff --git a/XNModels/XNATA04DataProcessor/XNATA04DataProcessor_p.h b/XNModels/XNATA04DataProcessor/XNATA04DataProcessor_p.h deleted file mode 100755 index 933d7e1..0000000 --- a/XNModels/XNATA04DataProcessor/XNATA04DataProcessor_p.h +++ /dev/null @@ -1,33 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -struct XNATA04DataProcessorPrivate : public XNModelObjectPrivate { - XNSim::C909::ATA04::Aerodynamics_input _aeroInput; - XNSim::C909::ATA04::Aerodynamics_output _aeroOutput; - XNSim::C909::ATA04::WeightBalance_input _wbInput; - XNSim::C909::ATA04::WeightBalance_output _wbOutput; - XNSim::C909::ATA04::GroundHandling_input _ghInput; - XNSim::C909::ATA04::GroundHandling_output _ghOutput; - XNSim::C909::ATA04::Aerodynamics_heartbeat _aeroHeartbeat; - XNSim::C909::ATA04::WeightBalance_heartbeat _wbHeartbeat; - XNSim::C909::ATA04::GroundHandling_heartbeat _ghHeartbeat; - - XNSim::C909::ATA04::Aerodynamics_input_Interface _aeroInputInterface; - XNSim::C909::ATA04::Aerodynamics_output_Interface _aeroOutputInterface; - XNSim::C909::ATA04::WeightBalance_input_Interface _wbInputInterface; - XNSim::C909::ATA04::WeightBalance_output_Interface _wbOutputInterface; - XNSim::C909::ATA04::GroundHandling_input_Interface _ghInputInterface; - XNSim::C909::ATA04::GroundHandling_output_Interface _ghOutputInterface; - XNSim::C909::ATA04::Aerodynamics_heartbeat_Interface _aeroHeartbeatInterface; - XNSim::C909::ATA04::WeightBalance_heartbeat_Interface _wbHeartbeatInterface; - XNSim::C909::ATA04::GroundHandling_heartbeat_Interface _ghHeartbeatInterface; -}; diff --git a/XNModels/XNAerodynamics/.vscode/c_cpp_properties.json b/XNModels/XNAerodynamics/.vscode/c_cpp_properties.json deleted file mode 100755 index 0b3cbd5..0000000 --- a/XNModels/XNAerodynamics/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "configurations": [ - { - "compileCommands": "${workspaceFolder}/build/compile_commands.json", - "configurationProvider": "ms-vscode.cmake-tools" - } - ], - "version": 4 -} \ No newline at end of file diff --git a/XNModels/XNAerodynamics/.vscode/settings.json b/XNModels/XNAerodynamics/.vscode/settings.json deleted file mode 100755 index b417e52..0000000 --- a/XNModels/XNAerodynamics/.vscode/settings.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "files.associations": { - "*.cpp": "cpp", - "functional": "cpp", - "qhash": "cpp", - "qstringlist": "cpp", - "*.ipp": "cpp", - "*.tcc": "cpp", - "optional": "cpp", - "type_traits": "cpp", - "cctype": "cpp", - "clocale": "cpp", - "cmath": "cpp", - "csignal": "cpp", - "cstdarg": "cpp", - "cstddef": "cpp", - "cstdio": "cpp", - "cstdlib": "cpp", - "cstring": "cpp", - "ctime": "cpp", - "cwchar": "cpp", - "cwctype": "cpp", - "any": "cpp", - "array": "cpp", - "atomic": "cpp", - "bit": "cpp", - "bitset": "cpp", - "chrono": "cpp", - "codecvt": "cpp", - "compare": "cpp", - "complex": "cpp", - "concepts": "cpp", - "condition_variable": "cpp", - "cstdint": "cpp", - "deque": "cpp", - "list": "cpp", - "map": "cpp", - "set": "cpp", - "unordered_map": "cpp", - "unordered_set": "cpp", - "vector": "cpp", - "exception": "cpp", - "algorithm": "cpp", - "iterator": "cpp", - "memory": "cpp", - "memory_resource": "cpp", - "numeric": "cpp", - "random": "cpp", - "ratio": "cpp", - "regex": "cpp", - "string": "cpp", - "string_view": "cpp", - "system_error": "cpp", - "tuple": "cpp", - "utility": "cpp", - "fstream": "cpp", - "future": "cpp", - "initializer_list": "cpp", - "iomanip": "cpp", - "iosfwd": "cpp", - "iostream": "cpp", - "istream": "cpp", - "limits": "cpp", - "mutex": "cpp", - "new": "cpp", - "ostream": "cpp", - "ranges": "cpp", - "span": "cpp", - "sstream": "cpp", - "stdexcept": "cpp", - "stop_token": "cpp", - "streambuf": "cpp", - "thread": "cpp", - "cinttypes": "cpp", - "typeindex": "cpp", - "typeinfo": "cpp", - "variant": "cpp" - } -} \ No newline at end of file diff --git a/XNModels/XNAerodynamics/CMakeLists.txt b/XNModels/XNAerodynamics/CMakeLists.txt deleted file mode 100755 index ba3848a..0000000 --- a/XNModels/XNAerodynamics/CMakeLists.txt +++ /dev/null @@ -1,63 +0,0 @@ -cmake_minimum_required(VERSION 3.16) - -project(XNAerodynamics LANGUAGES CXX) - -set(MODEL_VERSION "1.0.0.0") - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -# 获取环境变量 -if(DEFINED ENV{XNCore}) - set(XNCore_PATH $ENV{XNCore}) -else() - message(FATAL_ERROR "Environment variable XNCore is not set.") -endif() - -# 添加 XNCore_PATH 下的 include 目录为包含目录 -include_directories(${XNCore_PATH}/include) -include_directories(${XNCore_PATH}/IDL) - -add_library(XNAerodynamics SHARED - XNAerodynamics_global.h - XNAerodynamics.cpp - XNAerodynamics.h - XNAerodynamics_p.h -) - -set_target_properties(XNAerodynamics PROPERTIES - LIBRARY_OUTPUT_NAME "libXNAerodynamics.so.${MODEL_VERSION}" - PREFIX "" - SUFFIX "" - SKIP_BUILD_RPATH TRUE - BUILD_WITH_INSTALL_RPATH TRUE -) - -target_link_libraries(XNAerodynamics PRIVATE - ${XNCore_PATH}/lib/libXNCore.so - ${XNCore_PATH}/lib/libC909_V1_Interface.so - dl -) - -target_compile_definitions(XNAerodynamics PRIVATE XNAERODYNAMICS_LIBRARY) - -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${XNCore_PATH}/Models" CACHE PATH "Install path prefix" FORCE) -endif() - -include(GNUInstallDirs) -install(TARGETS XNAerodynamics - BUNDLE DESTINATION . - LIBRARY DESTINATION . - RUNTIME DESTINATION . -) - -# 添加自定义命令和目标以拷贝配置文件 -file(GLOB CONFIG_FILE "*.mcfg") - -# 使用 install 命令在安装时拷贝配置文件 -install(FILES ${CONFIG_FILE} - DESTINATION ${CMAKE_INSTALL_PREFIX} - RENAME "XNAerodynamics_V${MODEL_VERSION}.mcfg" -) diff --git a/XNModels/XNAerodynamics/XNAerodynamics.cpp b/XNModels/XNAerodynamics/XNAerodynamics.cpp deleted file mode 100755 index cfd54fe..0000000 --- a/XNModels/XNAerodynamics/XNAerodynamics.cpp +++ /dev/null @@ -1,107 +0,0 @@ -#include "XNAerodynamics.h" -#include "XNAerodynamics_p.h" -#include - -XN_MODEL_INITIALIZE(XNAerodynamics) - -XNAerodynamics::XNAerodynamics() : XNModelObject(new XNAerodynamicsPrivate()) -{ -} - -XNAerodynamics::~XNAerodynamics() -{ - ReleaseData(); -} - -XNAerodynamics::XNAerodynamics(PrivateType *p) : XNModelObject(p) -{ -} - -void XNAerodynamics::Initialize() -{ - T_D(); - SuperType::Initialize(); - if (d->_dynamicLib) { - d->_fun = (FunctionType)dlsym(d->_dynamicLib, d->_entryPointName.c_str()); - if (!d->_fun) { - LOG_WARNING("Failed to resolve SACSCAerodynamicsEntryPoint"); - } - } -} - -void XNAerodynamics::PrepareForExecute() -{ - T_D(); - XNModelObject::PrepareForExecute(); - InitializeData(); - d->_inputInterface.Initialize(GetFramework(), GetUniqueId(), 1); - d->_outputInterface.Initialize(GetFramework(), GetUniqueId(), 2); - d->_heartbeatInterface.Initialize(GetFramework(), GetUniqueId(), 2); -} - -void XNAerodynamics::StepUpdate() -{ - T_D(); - XNModelObject::StepUpdate(); - if (d->_fun) { - d->_inputInterface.getData(d->_data.input_aero); - d->_fun(&d->_data); - d->_outputInterface.setData(d->_data.output_aero); - d->_heartbeatInterface.setData(&d->_data); - } -} - -void XNAerodynamics::InitializeData() -{ - T_D(); - d->_data.aero_model_heartbeat = 0; - d->_data.input_aero = new input_aero_S; - d->_data.input_aero->l_04_i_aerocomac_ail_f8 = new double[10]; - d->_data.input_aero->l_04_i_aerocomac_elv_f8 = new double[4]; - d->_data.input_aero->l_04_i_aerocomac_rud_f8 = new double[2]; - d->_data.input_aero->l_04_i_aerocomac_gear_f8 = new double[7]; - d->_data.input_aero->l_04_i_aerocomac_flap_f8 = new double[10]; - d->_data.input_aero->l_04_i_aerocomac_slat_f8 = new double[20]; - d->_data.input_aero->l_04_i_aerocomac_spl_f8 = new double[20]; - d->_data.input_aero->l_04_i_aerocomac_tnet_f8 = new double[4]; - d->_data.input_aero->l_04_i_aerocomac_kice_f8 = new double[20]; - d->_data.output_aero = new output_aero_S; -} - -void XNAerodynamics::ReleaseData() -{ - T_D(); - if (d->_data.input_aero) { - if (d->_data.input_aero->l_04_i_aerocomac_ail_f8) { - delete[] d->_data.input_aero->l_04_i_aerocomac_ail_f8; - } - if (d->_data.input_aero->l_04_i_aerocomac_elv_f8) { - delete[] d->_data.input_aero->l_04_i_aerocomac_elv_f8; - } - if (d->_data.input_aero->l_04_i_aerocomac_rud_f8) { - delete[] d->_data.input_aero->l_04_i_aerocomac_rud_f8; - } - if (d->_data.input_aero->l_04_i_aerocomac_gear_f8) { - delete[] d->_data.input_aero->l_04_i_aerocomac_gear_f8; - } - if (d->_data.input_aero->l_04_i_aerocomac_flap_f8) { - delete[] d->_data.input_aero->l_04_i_aerocomac_flap_f8; - } - if (d->_data.input_aero->l_04_i_aerocomac_slat_f8) { - delete[] d->_data.input_aero->l_04_i_aerocomac_slat_f8; - } - if (d->_data.input_aero->l_04_i_aerocomac_spl_f8) { - delete[] d->_data.input_aero->l_04_i_aerocomac_spl_f8; - } - if (d->_data.input_aero->l_04_i_aerocomac_tnet_f8) { - delete[] d->_data.input_aero->l_04_i_aerocomac_tnet_f8; - } - if (d->_data.input_aero->l_04_i_aerocomac_kice_f8) { - delete[] d->_data.input_aero->l_04_i_aerocomac_kice_f8; - } - delete d->_data.input_aero; - } - if (d->_data.output_aero) { - delete d->_data.output_aero; - } -} \ No newline at end of file diff --git a/XNModels/XNAerodynamics/XNAerodynamics.h b/XNModels/XNAerodynamics/XNAerodynamics.h deleted file mode 100755 index 1b4d7f5..0000000 --- a/XNModels/XNAerodynamics/XNAerodynamics.h +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once -#include "XNAerodynamics_global.h" -#include - -class XNAerodynamicsPrivate; - -class XNAERODYNAMICS_EXPORT XNAerodynamics : public XNModelObject -{ - XN_METATYPE(XNAerodynamics, XNModelObject) - XN_DECLARE_PRIVATE(XNAerodynamics) -public: - XNAerodynamics(); - virtual ~XNAerodynamics(); - -protected: - XNAerodynamics(PrivateType *p); - -public: - virtual void Initialize() override; - virtual void PrepareForExecute() override; - virtual void StepUpdate() override; - -protected: - void InitializeData(); - void ReleaseData(); -}; - -XNCLASS_PTR_DECLARE(XNAerodynamics) diff --git a/XNModels/XNAerodynamics/XNAerodynamics.mcfg b/XNModels/XNAerodynamics/XNAerodynamics.mcfg deleted file mode 100755 index c565d59..0000000 --- a/XNModels/XNAerodynamics/XNAerodynamics.mcfg +++ /dev/null @@ -1,13 +0,0 @@ - - - XNAerodynamics - ATA04气动模型 - Jin - 1.0.0 - 2025-02-04 10:00:00 - 2025-02-04 10:00:00 - 0-0 - 99 - ATA04_SACSCAerodynamics_2.0.3.5H_20241106/libSACSCAerodynamics.so - - diff --git a/XNModels/XNAerodynamics/XNAerodynamics_global.h b/XNModels/XNAerodynamics/XNAerodynamics_global.h deleted file mode 100755 index d5c5a5e..0000000 --- a/XNModels/XNAerodynamics/XNAerodynamics_global.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef XNAERODYNAMICS_GLOBAL_H -#define XNAERODYNAMICS_GLOBAL_H - -#if defined(XNAERODYNAMICS_LIBRARY) -# define XNAERODYNAMICS_EXPORT __attribute__((visibility("default"))) -#else -# define XNAERODYNAMICS_EXPORT __attribute__((visibility("default"))) -#endif - -#endif // XNAERODYNAMICS_GLOBAL_H diff --git a/XNModels/XNAerodynamics/XNAerodynamics_p.h b/XNModels/XNAerodynamics/XNAerodynamics_p.h deleted file mode 100755 index edd8d02..0000000 --- a/XNModels/XNAerodynamics/XNAerodynamics_p.h +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include - -using interfaceType = ComacDataStructure_S; -typedef void (*FunctionType)(interfaceType *); - -struct XNAerodynamicsPrivate : public XNModelObjectPrivate { - FunctionType _fun = nullptr; - - ComacDataStructure_S _data; - - std::string _entryPointName = "_Z27SACSCAerodynamicsEntryPointP20ComacDataStructure_S"; - - std::mutex _mutex; - - XNSim::C909::ATA04::Aerodynamics_input_Interface _inputInterface; - XNSim::C909::ATA04::Aerodynamics_output_Interface _outputInterface; - XNSim::C909::ATA04::Aerodynamics_heartbeat_Interface _heartbeatInterface; -}; diff --git a/XNModels/XNGroundHandling/.vscode/c_cpp_properties.json b/XNModels/XNGroundHandling/.vscode/c_cpp_properties.json deleted file mode 100755 index 0b3cbd5..0000000 --- a/XNModels/XNGroundHandling/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "configurations": [ - { - "compileCommands": "${workspaceFolder}/build/compile_commands.json", - "configurationProvider": "ms-vscode.cmake-tools" - } - ], - "version": 4 -} \ No newline at end of file diff --git a/XNModels/XNGroundHandling/.vscode/settings.json b/XNModels/XNGroundHandling/.vscode/settings.json deleted file mode 100755 index a7dfdcc..0000000 --- a/XNModels/XNGroundHandling/.vscode/settings.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "files.associations": { - "*.cpp": "cpp", - "qobject": "cpp", - "cctype": "cpp", - "clocale": "cpp", - "cmath": "cpp", - "csignal": "cpp", - "cstdarg": "cpp", - "cstddef": "cpp", - "cstdio": "cpp", - "cstdlib": "cpp", - "cstring": "cpp", - "ctime": "cpp", - "cwchar": "cpp", - "cwctype": "cpp", - "any": "cpp", - "array": "cpp", - "atomic": "cpp", - "bit": "cpp", - "*.tcc": "cpp", - "bitset": "cpp", - "chrono": "cpp", - "codecvt": "cpp", - "compare": "cpp", - "complex": "cpp", - "concepts": "cpp", - "condition_variable": "cpp", - "cstdint": "cpp", - "deque": "cpp", - "list": "cpp", - "map": "cpp", - "set": "cpp", - "unordered_map": "cpp", - "unordered_set": "cpp", - "vector": "cpp", - "exception": "cpp", - "algorithm": "cpp", - "functional": "cpp", - "iterator": "cpp", - "memory": "cpp", - "memory_resource": "cpp", - "numeric": "cpp", - "optional": "cpp", - "random": "cpp", - "ratio": "cpp", - "regex": "cpp", - "string": "cpp", - "string_view": "cpp", - "system_error": "cpp", - "tuple": "cpp", - "type_traits": "cpp", - "utility": "cpp", - "future": "cpp", - "initializer_list": "cpp", - "iomanip": "cpp", - "iosfwd": "cpp", - "iostream": "cpp", - "istream": "cpp", - "limits": "cpp", - "mutex": "cpp", - "new": "cpp", - "ostream": "cpp", - "ranges": "cpp", - "span": "cpp", - "sstream": "cpp", - "stdexcept": "cpp", - "stop_token": "cpp", - "streambuf": "cpp", - "thread": "cpp", - "cinttypes": "cpp", - "typeindex": "cpp", - "typeinfo": "cpp", - "variant": "cpp", - "fstream": "cpp" - } -} \ No newline at end of file diff --git a/XNModels/XNGroundHandling/CMakeLists.txt b/XNModels/XNGroundHandling/CMakeLists.txt deleted file mode 100755 index f40abf1..0000000 --- a/XNModels/XNGroundHandling/CMakeLists.txt +++ /dev/null @@ -1,62 +0,0 @@ -cmake_minimum_required(VERSION 3.16) - -project(XNGroundHandling LANGUAGES CXX) - -set(MODEL_VERSION "2.0.143.1") - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -# 获取环境变量 -if(DEFINED ENV{XNCore}) - set(XNCore_PATH $ENV{XNCore}) -else() - message(FATAL_ERROR "Environment variable XNCore is not set.") -endif() - -# 添加 XNCore_PATH 下的 include 目录为包含目录 -include_directories(${XNCore_PATH}/include) -include_directories(${XNCore_PATH}/IDL) - -add_library(XNGroundHandling SHARED - XNGroundHandling_global.h - XNGroundHandling.cpp - XNGroundHandling.h - XNGroundHandling_p.h -) - -set_target_properties(XNGroundHandling PROPERTIES - LIBRARY_OUTPUT_NAME "libXNGroundHandling.so.${MODEL_VERSION}" - PREFIX "" - SUFFIX "" - SKIP_BUILD_RPATH TRUE - BUILD_WITH_INSTALL_RPATH TRUE -) - -target_link_libraries(XNGroundHandling PRIVATE - ${XNCore_PATH}/lib/libXNCore.so - ${XNCore_PATH}/lib/libC909_V1_Interface.so - dl) - -target_compile_definitions(XNGroundHandling PRIVATE XNGROUNDHANDLING_LIBRARY) - -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${XNCore_PATH}/Models" CACHE PATH "Install path prefix" FORCE) -endif() - -include(GNUInstallDirs) -install(TARGETS XNGroundHandling - BUNDLE DESTINATION . - LIBRARY DESTINATION . - RUNTIME DESTINATION . -) - -# 添加自定义命令和目标以拷贝配置文件 -file(GLOB CONFIG_FILE "*.mcfg") - -# 使用 install 命令在安装时拷贝配置文件 -install(FILES ${CONFIG_FILE} - DESTINATION ${CMAKE_INSTALL_PREFIX} - RENAME "XNGroundHandling_V${MODEL_VERSION}.mcfg" -) \ No newline at end of file diff --git a/XNModels/XNGroundHandling/GroundHandling.xnprj b/XNModels/XNGroundHandling/GroundHandling.xnprj deleted file mode 100755 index a9e2cac..0000000 --- a/XNModels/XNGroundHandling/GroundHandling.xnprj +++ /dev/null @@ -1,18 +0,0 @@ - - - GroundHandling - /media/jin/E/MyCode/XNSim/XNModels/XNGroundHandling - XNGroundHandling - Jin - 1.0.0 - ATA04GroundHandling - 2025-02-19 16:22:17 - 2025-02-19 16:22:19 - 0-0 - 99 - - - - - - diff --git a/XNModels/XNGroundHandling/XNGroundHandling.cpp b/XNModels/XNGroundHandling/XNGroundHandling.cpp deleted file mode 100755 index d51d109..0000000 --- a/XNModels/XNGroundHandling/XNGroundHandling.cpp +++ /dev/null @@ -1,311 +0,0 @@ -#include "XNGroundHandling.h" -#include "XNGroundHandling_p.h" -#include - -XN_MODEL_INITIALIZE(XNGroundHandling) - -XNGroundHandling::XNGroundHandling() : XNModelObject(new XNGroundHandlingPrivate()) -{ -} - -XNGroundHandling::~XNGroundHandling() -{ - ReleaseData(); -} - -XNGroundHandling::XNGroundHandling(PrivateType *p) : XNModelObject(p) -{ -} - -void XNGroundHandling::Initialize() -{ - T_D(); - XNModelObject::Initialize(); - if (d->_dynamicLib) { - d->_fun = (FunctionType)dlsym(d->_dynamicLib, d->_entryPointName.c_str()); - if (!d->_fun) { - LOG_WARNING("Failed to resolve SACSCGroundHandlingEntry"); - } - } - //add other initial code here -} - -void XNGroundHandling::PrepareForExecute() -{ - T_D(); - XNModelObject::PrepareForExecute(); - InitializeData(); - d->_inputInterface.Initialize(GetFramework(), GetUniqueId(), 1); - d->_outputInterface.Initialize(GetFramework(), GetUniqueId(), 2); - d->_heartbeatInterface.Initialize(GetFramework(), GetUniqueId(), 2); -} - -void XNGroundHandling::StepUpdate() -{ - T_D(); - XNModelObject::StepUpdate(); - if (d->_fun) { - //add your input code here - d->_inputInterface.getData(d->_data.input_ground); - d->_fun(&d->_data); - d->_outputInterface.setData(d->_data.output_ground); - d->_heartbeatInterface.setData(&d->_data); - //add your output code here - } -} - -void XNGroundHandling::InitializeData() -{ - T_D(); - //add your initial data code here - d->_data.input_ground = new input_ground_S(); - d->_data.input_ground->l_04_i_gdcomac_brake_torq_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.input_ground->l_04_i_gdcomac_brake_torq_f8[i] = new double[2]; - } - d->_data.input_ground->l_04_i_gdcomac_gear_f8 = new double[3]; - d->_data.input_ground->l_04_i_gdcomac_gsteer_f8 = new double[3]; - d->_data.input_ground->l_04_i_gdcomac_tire_pres_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.input_ground->l_04_i_gdcomac_tire_pres_f8[i] = new double[2]; - } - d->_data.input_ground->l_04_i_gdcomac_contdep_f8 = new double[7]; - d->_data.input_ground->l_04_i_gdcomac_brake_temp_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.input_ground->l_04_i_gdcomac_brake_temp_f8[i] = new double[2]; - } - d->_data.input_ground->l_04_i_gdcomac_tire_tburst_l1 = new unsigned char *[3]; - for (int i = 0; i < 3; i++) { - d->_data.input_ground->l_04_i_gdcomac_tire_tburst_l1[i] = new unsigned char[2]; - } - d->_data.input_ground->l_04_i_gdcomac_tire_tflat_l1 = new unsigned char *[3]; - for (int i = 0; i < 3; i++) { - d->_data.input_ground->l_04_i_gdcomac_tire_tflat_l1[i] = new unsigned char[2]; - } - d->_data.input_ground->l_04_i_gdcomac_rcon_ci_f8 = new double[14]; - d->_data.output_ground = new output_ground_S(); - d->_data.output_ground->l_04_o_gdcomac_fygs_f8 = new double[3]; - d->_data.output_ground->l_04_o_gdcomac_mzgs_f8 = new double[3]; - d->_data.output_ground->l_04_o_gdcomac_mu_f8 = new double[3]; - d->_data.output_ground->l_04_o_gdcomac_dstroke_f8 = new double[3]; - d->_data.output_ground->l_04_o_gdcomac_sr_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.output_ground->l_04_o_gdcomac_sr_f8[i] = new double[2]; - } - d->_data.output_ground->l_04_o_gdcomac_sy_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.output_ground->l_04_o_gdcomac_sy_f8[i] = new double[2]; - } - d->_data.output_ground->l_04_o_gdcomac_sx_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.output_ground->l_04_o_gdcomac_sx_f8[i] = new double[2]; - } - d->_data.output_ground->l_04_o_gdcomac_xft_f8 = new double[3]; - d->_data.output_ground->l_04_o_gdcomac_yft_f8 = new double[3]; - d->_data.output_ground->l_04_o_gdcomac_zft_f8 = new double[3]; - d->_data.output_ground->l_04_o_gdcomac_tire_vel_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.output_ground->l_04_o_gdcomac_tire_vel_f8[i] = new double[2]; - } - d->_data.output_ground->l_04_o_gdcomac_tire_temp_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.output_ground->l_04_o_gdcomac_tire_temp_f8[i] = new double[2]; - } - d->_data.output_ground->l_04_o_gdcomac_tire_burst_l1 = new unsigned char *[3]; - for (int i = 0; i < 3; i++) { - d->_data.output_ground->l_04_o_gdcomac_tire_burst_l1[i] = new unsigned char[2]; - } - d->_data.output_ground->l_04_o_gdcomac_utirew_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.output_ground->l_04_o_gdcomac_utirew_f8[i] = new double[2]; - } - d->_data.output_ground->l_04_o_gdcomac_vtirew_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.output_ground->l_04_o_gdcomac_vtirew_f8[i] = new double[2]; - } - d->_data.output_ground->l_04_o_gdcomac_whl_omega_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.output_ground->l_04_o_gdcomac_whl_omega_f8[i] = new double[2]; - } - d->_data.output_ground->l_04_o_gdcomac_dstruc_f8 = new double[6]; - d->_data.output_ground->l_04_o_gdcomac_nd_f8 = new double[3]; - d->_data.output_ground->l_04_o_gdcomac_wor_par_f8 = new double[3]; - d->_data.output_ground->l_04_o_gdcomac_vczt_f8 = new double *[3]; - for (int i = 0; i < 3; i++) { - d->_data.output_ground->l_04_o_gdcomac_vczt_f8[i] = new double[2]; - } -} - -void XNGroundHandling::ReleaseData() -{ - T_D(); - // 释放内存 - if (d->_data.input_ground) { - if (d->_data.input_ground->l_04_i_gdcomac_brake_torq_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.input_ground->l_04_i_gdcomac_brake_torq_f8[i]) { - delete[] d->_data.input_ground->l_04_i_gdcomac_brake_torq_f8[i]; - } - } - delete[] d->_data.input_ground->l_04_i_gdcomac_brake_torq_f8; - } - if (d->_data.input_ground->l_04_i_gdcomac_gear_f8) { - delete[] d->_data.input_ground->l_04_i_gdcomac_gear_f8; - } - if (d->_data.input_ground->l_04_i_gdcomac_gsteer_f8) { - delete[] d->_data.input_ground->l_04_i_gdcomac_gsteer_f8; - } - if (d->_data.input_ground->l_04_i_gdcomac_tire_pres_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.input_ground->l_04_i_gdcomac_tire_pres_f8[i]) { - delete[] d->_data.input_ground->l_04_i_gdcomac_tire_pres_f8[i]; - } - } - delete[] d->_data.input_ground->l_04_i_gdcomac_tire_pres_f8; - } - if (d->_data.input_ground->l_04_i_gdcomac_contdep_f8) { - delete[] d->_data.input_ground->l_04_i_gdcomac_contdep_f8; - } - if (d->_data.input_ground->l_04_i_gdcomac_brake_temp_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.input_ground->l_04_i_gdcomac_brake_temp_f8[i]) { - delete[] d->_data.input_ground->l_04_i_gdcomac_brake_temp_f8[i]; - } - } - delete[] d->_data.input_ground->l_04_i_gdcomac_brake_temp_f8; - } - if (d->_data.input_ground->l_04_i_gdcomac_tire_tburst_l1) { - for (int i = 0; i < 3; i++) { - if (d->_data.input_ground->l_04_i_gdcomac_tire_tburst_l1[i]) { - delete[] d->_data.input_ground->l_04_i_gdcomac_tire_tburst_l1[i]; - } - } - delete[] d->_data.input_ground->l_04_i_gdcomac_tire_tburst_l1; - } - if (d->_data.input_ground->l_04_i_gdcomac_tire_tflat_l1) { - for (int i = 0; i < 3; i++) { - if (d->_data.input_ground->l_04_i_gdcomac_tire_tflat_l1[i]) { - delete[] d->_data.input_ground->l_04_i_gdcomac_tire_tflat_l1[i]; - } - } - delete[] d->_data.input_ground->l_04_i_gdcomac_tire_tflat_l1; - } - if (d->_data.input_ground->l_04_i_gdcomac_rcon_ci_f8) { - delete[] d->_data.input_ground->l_04_i_gdcomac_rcon_ci_f8; - } - delete d->_data.input_ground; - } - if (d->_data.output_ground) { - if (d->_data.output_ground->l_04_o_gdcomac_fygs_f8) { - delete[] d->_data.output_ground->l_04_o_gdcomac_fygs_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_mzgs_f8) { - delete[] d->_data.output_ground->l_04_o_gdcomac_mzgs_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_mu_f8) { - delete[] d->_data.output_ground->l_04_o_gdcomac_mu_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_dstroke_f8) { - delete[] d->_data.output_ground->l_04_o_gdcomac_dstroke_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_sr_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.output_ground->l_04_o_gdcomac_sr_f8[i]) { - delete[] d->_data.output_ground->l_04_o_gdcomac_sr_f8[i]; - } - } - delete[] d->_data.output_ground->l_04_o_gdcomac_sr_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_sy_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.output_ground->l_04_o_gdcomac_sy_f8[i]) { - delete[] d->_data.output_ground->l_04_o_gdcomac_sy_f8[i]; - } - } - delete[] d->_data.output_ground->l_04_o_gdcomac_sy_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_sx_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.output_ground->l_04_o_gdcomac_sx_f8[i]) { - delete[] d->_data.output_ground->l_04_o_gdcomac_sx_f8[i]; - } - } - delete[] d->_data.output_ground->l_04_o_gdcomac_sx_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_xft_f8) { - delete[] d->_data.output_ground->l_04_o_gdcomac_xft_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_yft_f8) { - delete[] d->_data.output_ground->l_04_o_gdcomac_yft_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_zft_f8) { - delete[] d->_data.output_ground->l_04_o_gdcomac_zft_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_tire_vel_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.output_ground->l_04_o_gdcomac_tire_vel_f8[i]) { - delete[] d->_data.output_ground->l_04_o_gdcomac_tire_vel_f8[i]; - } - } - delete[] d->_data.output_ground->l_04_o_gdcomac_tire_vel_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_tire_temp_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.output_ground->l_04_o_gdcomac_tire_temp_f8[i]) { - delete[] d->_data.output_ground->l_04_o_gdcomac_tire_temp_f8[i]; - } - } - delete[] d->_data.output_ground->l_04_o_gdcomac_tire_temp_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_tire_burst_l1) { - for (int i = 0; i < 3; i++) { - if (d->_data.output_ground->l_04_o_gdcomac_tire_burst_l1[i]) { - delete[] d->_data.output_ground->l_04_o_gdcomac_tire_burst_l1[i]; - } - } - delete[] d->_data.output_ground->l_04_o_gdcomac_tire_burst_l1; - } - if (d->_data.output_ground->l_04_o_gdcomac_utirew_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.output_ground->l_04_o_gdcomac_utirew_f8[i]) { - delete[] d->_data.output_ground->l_04_o_gdcomac_utirew_f8[i]; - } - } - delete[] d->_data.output_ground->l_04_o_gdcomac_utirew_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_vtirew_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.output_ground->l_04_o_gdcomac_vtirew_f8[i]) { - delete[] d->_data.output_ground->l_04_o_gdcomac_vtirew_f8[i]; - } - } - delete[] d->_data.output_ground->l_04_o_gdcomac_vtirew_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_whl_omega_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.output_ground->l_04_o_gdcomac_whl_omega_f8[i]) { - delete[] d->_data.output_ground->l_04_o_gdcomac_whl_omega_f8[i]; - } - } - delete[] d->_data.output_ground->l_04_o_gdcomac_whl_omega_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_dstruc_f8) { - delete[] d->_data.output_ground->l_04_o_gdcomac_dstruc_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_nd_f8) { - delete[] d->_data.output_ground->l_04_o_gdcomac_nd_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_wor_par_f8) { - delete[] d->_data.output_ground->l_04_o_gdcomac_wor_par_f8; - } - if (d->_data.output_ground->l_04_o_gdcomac_vczt_f8) { - for (int i = 0; i < 3; i++) { - if (d->_data.output_ground->l_04_o_gdcomac_vczt_f8[i]) { - delete[] d->_data.output_ground->l_04_o_gdcomac_vczt_f8[i]; - } - } - delete[] d->_data.output_ground->l_04_o_gdcomac_vczt_f8; - } - delete d->_data.output_ground; - } -} \ No newline at end of file diff --git a/XNModels/XNGroundHandling/XNGroundHandling.h b/XNModels/XNGroundHandling/XNGroundHandling.h deleted file mode 100755 index e56606d..0000000 --- a/XNModels/XNGroundHandling/XNGroundHandling.h +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once -#include "XNGroundHandling_global.h" -#include - -struct XNGroundHandlingPrivate; - -class XNGROUNDHANDLING_EXPORT XNGroundHandling : public XNModelObject -{ - XN_METATYPE(XNGroundHandling, XNModelObject) - XN_DECLARE_PRIVATE(XNGroundHandling) -public: - XNGroundHandling(); - virtual ~XNGroundHandling(); - -protected: - XNGroundHandling(PrivateType *p); - -public: - virtual void Initialize() override; - virtual void PrepareForExecute() override; - virtual void StepUpdate() override; - -protected: - void InitializeData(); - void ReleaseData(); -}; - -XNCLASS_PTR_DECLARE(XNGroundHandling) \ No newline at end of file diff --git a/XNModels/XNGroundHandling/XNGroundHandling.mcfg b/XNModels/XNGroundHandling/XNGroundHandling.mcfg deleted file mode 100755 index 99fb1a1..0000000 --- a/XNModels/XNGroundHandling/XNGroundHandling.mcfg +++ /dev/null @@ -1,13 +0,0 @@ - - - XNGroundHandling - ATA04地面操纵模型 - Jin - 1.0.0 - 2025-02-19 16:22:17 - 2025-02-19 16:22:19 - 0-0 - 99 - ATA04_SACSCGroundHandling_2.0.143.1H_20250506/libSACSCGroundHandling.so.2.0.143.1H - - diff --git a/XNModels/XNGroundHandling/XNGroundHandling_global.h b/XNModels/XNGroundHandling/XNGroundHandling_global.h deleted file mode 100755 index 968d0d0..0000000 --- a/XNModels/XNGroundHandling/XNGroundHandling_global.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef XNGROUNDHANDLING_GLOBAL_H -#define XNGROUNDHANDLING_GLOBAL_H - -#if defined(XNGROUNDHANDLING_LIBRARY) -# define XNGROUNDHANDLING_EXPORT __attribute__((visibility("default"))) -#else -# define XNGROUNDHANDLING_EXPORT __attribute__((visibility("hidden"))) -#endif - -#endif // XNGROUNDHANDLING_GLOBAL_H diff --git a/XNModels/XNGroundHandling/XNGroundHandling_p.h b/XNModels/XNGroundHandling/XNGroundHandling_p.h deleted file mode 100755 index 02c76c7..0000000 --- a/XNModels/XNGroundHandling/XNGroundHandling_p.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include - -typedef void (*FunctionType)(ComacDataStructure_S *); - -struct XNGroundHandlingPrivate : public XNModelObjectPrivate { - FunctionType _fun = nullptr; - - ComacDataStructure_S _data; - - std::string _entryPointName = "_Z29SACSCGroundHandlingEntryPointP20ComacDataStructure_S"; - - std::mutex _mutex; - - XNSim::C909::ATA04::GroundHandling_input_Interface _inputInterface; - XNSim::C909::ATA04::GroundHandling_output_Interface _outputInterface; - XNSim::C909::ATA04::GroundHandling_heartbeat_Interface _heartbeatInterface; -}; diff --git a/XNModels/XNWeightBalance/.vscode/c_cpp_properties.json b/XNModels/XNWeightBalance/.vscode/c_cpp_properties.json deleted file mode 100755 index 0b3cbd5..0000000 --- a/XNModels/XNWeightBalance/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "configurations": [ - { - "compileCommands": "${workspaceFolder}/build/compile_commands.json", - "configurationProvider": "ms-vscode.cmake-tools" - } - ], - "version": 4 -} \ No newline at end of file diff --git a/XNModels/XNWeightBalance/CMakeLists.txt b/XNModels/XNWeightBalance/CMakeLists.txt deleted file mode 100755 index 03a0313..0000000 --- a/XNModels/XNWeightBalance/CMakeLists.txt +++ /dev/null @@ -1,63 +0,0 @@ -cmake_minimum_required(VERSION 3.16) - -project(XNWeightBalance LANGUAGES CXX) - -set(MODEL_VERSION "1.0.0.0") - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -# 获取环境变量 -if(DEFINED ENV{XNCore}) - set(XNCore_PATH $ENV{XNCore}) -else() - message(FATAL_ERROR "Environment variable XNCore is not set.") -endif() - -# 添加 XNCore_PATH 下的 include 目录为包含目录 -include_directories(${XNCore_PATH}/include) -include_directories(${XNCore_PATH}/IDL) - -add_library(XNWeightBalance SHARED - XNWeightBalance_global.h - XNWeightBalance.cpp - XNWeightBalance.h - XNWeightBalance_p.h -) - -set_target_properties(XNWeightBalance PROPERTIES - LIBRARY_OUTPUT_NAME "libXNWeightBalance.so.${MODEL_VERSION}" - PREFIX "" - SUFFIX "" - SKIP_BUILD_RPATH TRUE - BUILD_WITH_INSTALL_RPATH TRUE -) - -target_link_libraries(XNWeightBalance PRIVATE - ${XNCore_PATH}/lib/libXNCore.so - ${XNCore_PATH}/lib/libC909_V1_Interface.so - dl - ) - -target_compile_definitions(XNWeightBalance PRIVATE XNWEIGHTBALANCE_LIBRARY) - -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${XNCore_PATH}/Models" CACHE PATH "Install path prefix" FORCE) -endif() - -include(GNUInstallDirs) -install(TARGETS XNWeightBalance - BUNDLE DESTINATION . - LIBRARY DESTINATION . - RUNTIME DESTINATION . -) - -# 添加自定义命令和目标以拷贝配置文件 -file(GLOB CONFIG_FILE "*.mcfg") - -# 使用 install 命令在安装时拷贝配置文件 -install(FILES ${CONFIG_FILE} - DESTINATION ${CMAKE_INSTALL_PREFIX} - RENAME "XNWeightBalance_V${MODEL_VERSION}.mcfg" -) \ No newline at end of file diff --git a/XNModels/XNWeightBalance/XNWeightBalance.cpp b/XNModels/XNWeightBalance/XNWeightBalance.cpp deleted file mode 100755 index 26182b2..0000000 --- a/XNModels/XNWeightBalance/XNWeightBalance.cpp +++ /dev/null @@ -1,111 +0,0 @@ -#include "XNWeightBalance.h" -#include "XNWeightBalance_p.h" -#include - -XN_MODEL_INITIALIZE(XNWeightBalance) - -XNWeightBalance::XNWeightBalance() : XNModelObject(new XNWeightBalancePrivate()) -{ -} - -XNWeightBalance::~XNWeightBalance() -{ - T_D(); - // 释放输入数组内存 - if (d->_data.input_weight) { - delete[] d->_data.input_weight->l_04_i_wbcomac_acset_tankfuel_f4; - delete[] d->_data.input_weight->l_04_i_wbcomac_eng_efsep_l1; - delete[] d->_data.input_weight->l_04_i_wbcomac_fuel_f8; - delete[] d->_data.input_weight->l_04_i_wbcomac_kice_f8; - delete d->_data.input_weight; - } - - // 释放输出数组内存 - if (d->_data.output_weight) { - delete[] d->_data.output_weight->l_04_o_wbcomac_fuel_cmd_f8; - delete[] d->_data.output_weight->l_04_o_wbcomac_ice_eng_f8; - delete d->_data.output_weight; - } -} - -XNWeightBalance::XNWeightBalance(PrivateType *p) : XNModelObject(p) -{ -} - -void XNWeightBalance::Initialize() -{ - T_D(); - XNModelObject::Initialize(); - if (d->_dynamicLib) { - d->_fun = (FunctionType)dlsym(d->_dynamicLib, d->_entryPointName.c_str()); - if (!d->_fun) { - LOG_WARNING("Failed to resolve SACSCGroundHandlingEntry"); - } - } - //add other initial code here -} - -void XNWeightBalance::PrepareForExecute() -{ - T_D(); - XNModelObject::PrepareForExecute(); - InitializeData(); - d->_inputInterface.Initialize(GetFramework(), GetUniqueId(), 1); - d->_outputInterface.Initialize(GetFramework(), GetUniqueId(), 2); - d->_heartbeatInterface.Initialize(GetFramework(), GetUniqueId(), 2); -} - -void XNWeightBalance::StepUpdate() -{ - T_D(); - XNModelObject::StepUpdate(); - if (d->_fun) { - d->_inputInterface.getData(d->_data.input_weight); - d->_fun(&d->_data); - d->_outputInterface.setData(d->_data.output_weight); - d->_heartbeatInterface.setData(&d->_data); - } -} - -void XNWeightBalance::InitializeData() -{ - T_D(); - //add your initial data code here - d->_data.input_weight = new input_weight_S(); - d->_data.input_weight->l_04_i_wbcomac_acset_tankfuel_f4 = new float[20]; - d->_data.input_weight->l_04_i_wbcomac_eng_efsep_l1 = new unsigned char[4]; - d->_data.input_weight->l_04_i_wbcomac_fuel_f8 = new double[20]; - d->_data.input_weight->l_04_i_wbcomac_kice_f8 = new double[20]; - d->_data.output_weight = new output_weight_S(); - d->_data.output_weight->l_04_o_wbcomac_fuel_cmd_f8 = new double[20]; - d->_data.output_weight->l_04_o_wbcomac_ice_eng_f8 = new double[4]; -} - -void XNWeightBalance::ReleaseData() -{ - T_D(); - //add your release data code here - if (d->_data.input_weight) { - if (d->_data.input_weight->l_04_i_wbcomac_acset_tankfuel_f4) { - delete[] d->_data.input_weight->l_04_i_wbcomac_acset_tankfuel_f4; - } - if (d->_data.input_weight->l_04_i_wbcomac_eng_efsep_l1) { - delete[] d->_data.input_weight->l_04_i_wbcomac_eng_efsep_l1; - } - if (d->_data.input_weight->l_04_i_wbcomac_fuel_f8) { - delete[] d->_data.input_weight->l_04_i_wbcomac_fuel_f8; - } - if (d->_data.input_weight->l_04_i_wbcomac_kice_f8) { - delete[] d->_data.input_weight->l_04_i_wbcomac_kice_f8; - } - delete d->_data.input_weight; - } - if (d->_data.output_weight) { - if (d->_data.output_weight->l_04_o_wbcomac_fuel_cmd_f8) { - delete[] d->_data.output_weight->l_04_o_wbcomac_fuel_cmd_f8; - } - if (d->_data.output_weight->l_04_o_wbcomac_ice_eng_f8) { - delete[] d->_data.output_weight->l_04_o_wbcomac_ice_eng_f8; - } - } -} diff --git a/XNModels/XNWeightBalance/XNWeightBalance.h b/XNModels/XNWeightBalance/XNWeightBalance.h deleted file mode 100755 index 507022e..0000000 --- a/XNModels/XNWeightBalance/XNWeightBalance.h +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once -#include "XNWeightBalance_global.h" -#include - -struct XNWeightBalancePrivate; - -class XNWEIGHTBALANCE_EXPORT XNWeightBalance : public XNModelObject -{ - XN_METATYPE(XNWeightBalance, XNModelObject) - XN_DECLARE_PRIVATE(XNWeightBalance) -public: - XNWeightBalance(); - virtual ~XNWeightBalance(); - -protected: - XNWeightBalance(PrivateType *p); - -public: - virtual void Initialize() override; - virtual void PrepareForExecute() override; - virtual void StepUpdate() override; - -protected: - void InitializeData(); - void ReleaseData(); -}; - -XNCLASS_PTR_DECLARE(XNWeightBalance) diff --git a/XNModels/XNWeightBalance/XNWeightBalance.mcfg b/XNModels/XNWeightBalance/XNWeightBalance.mcfg deleted file mode 100755 index 85e8ac9..0000000 --- a/XNModels/XNWeightBalance/XNWeightBalance.mcfg +++ /dev/null @@ -1,13 +0,0 @@ - - - XNWeightBalance - ATA04质量模型 - Jin - 1.0.0 - 2025-02-20 09:29:18 - 2025-02-20 09:29:20 - 0-0 - 99 - ATA04_WeightBalance_2.0.14.6H_20241106/libSACSCWeightBalance.so - - diff --git a/XNModels/XNWeightBalance/XNWeightBalance.xnprj b/XNModels/XNWeightBalance/XNWeightBalance.xnprj deleted file mode 100755 index a9a9340..0000000 --- a/XNModels/XNWeightBalance/XNWeightBalance.xnprj +++ /dev/null @@ -1,18 +0,0 @@ - - - XNWeightBalance - /media/jin/E/MyCode/XNSim/XNModels/XNWeightBalance - XNWeightBalance - Jin - 1.0.0 - ATA04WeightBalance - 2025-02-20 09:29:18 - 2025-02-20 09:29:20 - 0-0 - 99 - ATA04_WeightBalance_2.0.14.6H_20241106/libSACSCWeightBalance.so - DataModels/libSACSCWeightBalance_V2.0.14.6H/std_04_dll.h - _Z28SACSCWeightBalanceEntryPointP20ComacDataStructure_S - ComacDataStructure_S - - diff --git a/XNModels/XNWeightBalance/XNWeightBalance_global.h b/XNModels/XNWeightBalance/XNWeightBalance_global.h deleted file mode 100755 index 71f4afc..0000000 --- a/XNModels/XNWeightBalance/XNWeightBalance_global.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef XNWEIGHTBALANCE_GLOBAL_H -#define XNWEIGHTBALANCE_GLOBAL_H - -#if defined(XNWEIGHTBALANCE_LIBRARY) -# define XNWEIGHTBALANCE_EXPORT __attribute__((visibility("default"))) -#else -# define XNWEIGHTBALANCE_EXPORT __attribute__((visibility("default"))) -#endif - -#endif // XNWEIGHTBALANCE_GLOBAL_H diff --git a/XNModels/XNWeightBalance/XNWeightBalance_p.h b/XNModels/XNWeightBalance/XNWeightBalance_p.h deleted file mode 100755 index f8f6d31..0000000 --- a/XNModels/XNWeightBalance/XNWeightBalance_p.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once -#include -#include "DataModels/libSACSCWeightBalance_V2.0.14.6H/std_04_dll.h" -#include -#include -#include - -typedef void (*FunctionType)(ComacDataStructure_S *); - -struct XNWeightBalancePrivate : public XNModelObjectPrivate { - FunctionType _fun = nullptr; - - ComacDataStructure_S _data; - - std::string _entryPointName = "_Z28SACSCWeightBalanceEntryPointP20ComacDataStructure_S"; - - std::mutex _mutex; - - XNSim::C909::ATA04::WeightBalance_input_Interface _inputInterface; - XNSim::C909::ATA04::WeightBalance_output_Interface _outputInterface; - XNSim::C909::ATA04::WeightBalance_heartbeat_Interface _heartbeatInterface; -};