/** * @file TypeDefine.h * @brief 类型定义头文件 */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /** * @brief 域参与者 */ using XNParticipant = eprosima::fastdds::dds::DomainParticipant; /** * @brief 域参与者Qos */ using XNParticipantQos = eprosima::fastdds::dds::DomainParticipantQos; /** * @brief 域参与者工厂 */ using XNParticipantFactory = eprosima::fastdds::dds::DomainParticipantFactory; /** * @brief 数据读取器监听器 */ using XNDataReaderListener = eprosima::fastdds::dds::DataReaderListener; /** * @brief 数据读取器 */ using XNDataReader = eprosima::fastdds::dds::DataReader; /** * @brief 数据读取器Qos */ using XNDataReaderQos = eprosima::fastdds::dds::DataReaderQos; /** * @brief 样本信息 */ using XNSampleInfo = eprosima::fastdds::dds::SampleInfo; /** * @brief 订阅者 */ using XNSubscriber = eprosima::fastdds::dds::Subscriber; /** * @brief 类型支持 */ using XNTypeSupport = eprosima::fastdds::dds::TypeSupport; /** * @brief 数据写入器 */ using XNDataWriter = eprosima::fastdds::dds::DataWriter; /** * @brief 数据写入器Qos */ using XNDataWriterQos = eprosima::fastdds::dds::DataWriterQos; /** * @brief 发布者 */ using XNPublisher = eprosima::fastdds::dds::Publisher; /** * @brief 发布者Qos */ using XNPublisherQos = eprosima::fastdds::dds::PublisherQos; /** * @brief 主题 */ using XNTopic = eprosima::fastdds::dds::Topic; /** * @brief 主题数据类型 */ using XNTopicDataType = eprosima::fastdds::dds::TopicDataType; /** * @brief 主题信息 */ struct TopicInfo { /** * @brief 主题 */ XNTopic *topic; /** * @brief 发布者 */ XNPublisher *publisher; /** * @brief 数据写入器 */ XNDataWriter *dataWriter; /** * @brief 订阅者 */ XNSubscriber *subscriber; /** * @brief 数据读取器 */ XNDataReader *dataReader; /** * @brief 数据读取器监听器 */ XNDataReaderListener *listener; }; /** * @brief 运行时数据 */ struct XNRuntimeData { /** * @brief 名称 */ QString m_name; /** * @brief 线程ID或模型ID */ unsigned int m_id; /** * @brief 运行状态 */ unsigned int m_RunningState; /** * @brief CPU亲和性掩码 * @note 用作线程信息时存储CPU亲和性掩码,从低位到高位依次为CPU 0~31 的亲和性掩码 * @note 用作模型信息时存储存储线程号 */ unsigned int m_AffinityMask; /** * @brief 节点ID * @note 用作模型信息时存储节点号 */ unsigned int m_NodeID; /** * @brief 优先级 */ unsigned int m_Priority; /** * @brief 设定频率 */ double m_SetFrequency; /** * @brief 当前频率 */ QVector m_CurrentFrequency; /** * @brief 最大频率 */ double m_MaxFrequency; /** * @brief 最小频率 */ double m_MinFrequency; /** * @brief 平均频率 */ double m_AvgFrequency; /** * @brief 周期计数 */ double m_CycleCount; /** * @brief 设定周期 */ double m_SetPeriod; /** * @brief 当前周期 */ QVector m_CurrentPeriod; /** * @brief 最大周期 */ double m_MaxPeriod; /** * @brief 最小周期 */ double m_MinPeriod; /** * @brief 平均周期 */ double m_AvgPeriod; }; /** * @brief 成员变量定义结构体 * @note 成员变量包含数据类型、变量名、是否为数组、数组大小、描述 */ struct MemberVariable { /** * @brief 数据类型 */ QString dataType; /** * @brief 变量名 */ QString variableName; /** * @brief 是否为数组 */ bool isArray; /** * @brief 数组大小 */ QVector arraySizes; /** * @brief 描述 */ QString description; }; /** * @brief 接口结构体定义结构体 * @note 接口结构体定义包含结构体名称、成员变量 */ struct StructDefinition { /** * @brief 结构体名称 */ QString structName; /** * @brief 成员变量 */ QVector> memberVariables; }; /** * @brief 命名空间定义结构体 * @note 命名空间定义包含命名空间名称、接口结构体定义、子命名空间定义 */ struct NamespaceDefinition { /** * @brief 命名空间名称 */ QString namespaceName; /** * @brief 结构体定义 */ QVector> structDefinitions; /** * @brief 子命名空间 */ QVector> childNamespaces; }; /** * @brief 模型接口定义 * @note 模型接口定义包含模型名称和接口命名空间定义 */ struct ModelDefinition { /** * @brief 模型名称 */ QString modelName; /** * @brief 命名空间定义 */ QVector> namespaceDefinitions; };