#pragma once #include "../C909_V1PubSubTypes.hpp" #include "XNCore/XNDDSInterface.h" namespace XNSim::C909::ATA04 { class Aerodynamics_heartbeat_Interface : public XNDDSInterface { public: using DDSType = XNSim::C909::ATA04::Aerodynamics_heartbeat; using DDSPubSubType = XNSim::C909::ATA04::Aerodynamics_heartbeatPubSubType; static const std::string topic_name; Aerodynamics_heartbeat_Interface(); virtual ~Aerodynamics_heartbeat_Interface(); virtual void Initialize(XNFrameworkPtr framework, uint32_t modelId, uint32_t DDS_type) override; virtual void clearOutData() override; virtual void sendOutData() override; void inputDataListener(const XNSim::C909::ATA04::Aerodynamics_heartbeat &input); template void getData(T *model_data) { std::lock_guard lock(dataMutex); if(model_data == nullptr) return; assign_value_get(data.aero_model_heartbeat(), model_data->aero_model_heartbeat); } template void setData(T *model_data) { if(model_data == nullptr) return; std::lock_guard lock(outDataMutex); clearOutData(); assign_value_set(data.aero_model_heartbeat(), model_data->aero_model_heartbeat); } protected: DDSType data; DDSType out_data; }; }