Files
SimCore/include/SimCore/Messages/SystemStateUpdate.hpp

45 lines
1.2 KiB
C++

#pragma once
#include "SimCore/EffectorData.hpp"
#include "SimCore/Identifier.hpp"
#include "SimCore/SensorData.hpp"
#include "WHISPER/Messages/Message.hpp"
#include <memory>
#include <vector>
namespace SimCore
{
class SystemStateUpdate
{
public:
SystemStateUpdate(const SimCore::Identifier OwnID);
SimCore::Identifier getOwnID();
void addSensorData(SimCore::SensorData data);
void addEffectorData(SimCore::EffectorData data);
/// @brief return a WHISPER Message out of a simtrack object
/// @return WHISPER::Message
WHISPER::Message buildMessage();
/// @brief creates a SimTrack out of a whisper message
/// @param msg
/// @return SimTrack Oject
static std::unique_ptr<SystemStateUpdate> unpack(WHISPER::Message msg);
std::vector<SensorData> getSensorData();
std::vector<EffectorData> getEffectorData();
private:
const SimCore::Identifier OwnID;
std::vector<SensorData> SensorData_;
std::vector<EffectorData> EffectorData_;
};
}