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;
-};