XNSim/XNMonitorServer/TypeDefine.h

281 lines
6.0 KiB
C
Raw Normal View History

/**
* @file TypeDefine.h
* @brief
*/
#pragma once
#include <string>
#include <vector>
#include <memory>
#include <fastdds/dds/domain/DomainParticipant.hpp>
#include <fastdds/dds/domain/DomainParticipantFactory.hpp>
#include <fastdds/dds/topic/TypeSupport.hpp>
#include <fastdds/dds/subscriber/DataReaderListener.hpp>
#include <fastdds/dds/subscriber/DataReader.hpp>
#include <fastdds/dds/subscriber/qos/DataReaderQos.hpp>
#include <fastdds/dds/subscriber/SampleInfo.hpp>
#include <fastdds/dds/subscriber/Subscriber.hpp>
#include <fastdds/dds/topic/TypeSupport.hpp>
#include <fastdds/dds/topic/Topic.hpp>
#include <fastdds/dds/topic/TopicDataType.hpp>
#include <fastdds/dds/publisher/Publisher.hpp>
#include <fastdds/dds/publisher/qos/PublisherQos.hpp>
#include <fastdds/dds/publisher/DataWriter.hpp>
#include <fastdds/dds/publisher/qos/DataWriterQos.hpp>
/**
* @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;
};
// 错误码定义
enum class XNDDSErrorCode {
SUCCESS = 0,
INIT_FAILED = -1,
TOPIC_CREATE_FAILED = -2,
PUBLISHER_CREATE_FAILED = -3,
SUBSCRIBER_CREATE_FAILED = -4,
DATAWRITER_CREATE_FAILED = -5,
DATAREADER_CREATE_FAILED = -6,
INVALID_PARAM = -7,
NOT_INITIALIZED = -8
};
/**
* @brief
*/
struct XNRuntimeData {
/**
* @brief
*/
std::string 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
*/
std::vector<double> m_CurrentFrequency;
/**
* @brief
*/
double m_MaxFrequency;
/**
* @brief
*/
double m_MinFrequency;
/**
* @brief
*/
double m_AvgFrequency;
/**
* @brief
*/
double m_CycleCount;
/**
* @brief
*/
double m_SetPeriod;
/**
* @brief
*/
std::vector<double> m_CurrentPeriod;
/**
* @brief
*/
double m_MaxPeriod;
/**
* @brief
*/
double m_MinPeriod;
/**
* @brief
*/
double m_AvgPeriod;
};
/**
* @brief
* @note
*/
struct MemberVariable {
/**
* @brief
*/
std::string dataType;
/**
* @brief
*/
std::string variableName;
/**
* @brief
*/
bool isArray;
/**
* @brief
*/
std::vector<int> arraySizes;
/**
* @brief
*/
std::string description;
};
/**
* @brief
* @note
*/
struct StructDefinition {
/**
* @brief
*/
std::string structName;
/**
* @brief
*/
std::vector<std::shared_ptr<MemberVariable>> memberVariables;
};
/**
* @brief
* @note
*/
struct NamespaceDefinition {
/**
* @brief
*/
std::string namespaceName;
/**
* @brief
*/
std::vector<std::shared_ptr<StructDefinition>> structDefinitions;
/**
* @brief
*/
std::vector<std::shared_ptr<NamespaceDefinition>> childNamespaces;
};
/**
* @brief
* @note
*/
struct ModelDefinition {
/**
* @brief
*/
std::string modelName;
/**
* @brief
*/
std::vector<std::shared_ptr<NamespaceDefinition>> namespaceDefinitions;
};