blob: 53860e2fdd887dbe1596f268083394b92403a634 [file] [log] [blame]
#ifndef BASYX_MAP_V2_SDK_DATASPECIFICATIONIEC61360_H
#define BASYX_MAP_V2_SDK_DATASPECIFICATIONIEC61360_H
#include <BaSyx/submodel/api_v2/dataspecification/IDataSpecificationIEC61360.h>
#include <BaSyx/submodel/map_v2/common/LangStringSet.h>
#include <BaSyx/submodel/map_v2/reference/Reference.h>
#include <BaSyx/vab/ElementMap.h>
namespace basyx {
namespace submodel {
namespace map {
class DataSpecificationIEC61360
: public api::IDataSpecificationIEC61360
, public virtual vab::ElementMap
{
public:
struct Path
{
static constexpr char PreferredName[] = "preferredName";
static constexpr char ShortName[] = "shortName";
static constexpr char Unit[] = "unit";
static constexpr char UnitId[] = "unitId";
static constexpr char SourceOfDefinition[] = "sourceOfDefinition";
static constexpr char Symbol[] = "symbol";
static constexpr char DataType[] = "dataType";
static constexpr char Definition[] = "definition";
static constexpr char ValueFormat[] = "valueFormat";
static constexpr char ValueList[] = "valueList";
static constexpr char ValueId[] = "valueId";
static constexpr char LevelType[] = "levelType";
};
DataSpecificationIEC61360() = delete;
DataSpecificationIEC61360(map::LangStringSet & preferred_name);
api::ILangStringSet & PreferredName() override;
api::ILangStringSet & ShortName() override;
api::ILangStringSet & Definition() override;
std::string * const getUnit() override;
api::IReference * const getUnitId() override;
std::string * const getSourceOfDefinition() override;
std::string * const getSymbol() override;
DataTypeIEC61360 getDataType() const override;
std::string * const getValueFormat() override;
/* TODO
MISSINGTYPE const getValueList() override;
MISSINGTYPE const getValueDataType() override;
*/
api::IReference * const getValueId() override;
LevelType getLevelType() const override;
void setPreferredName(const api::ILangStringSet & preferredName);
void setShortName(const api::ILangStringSet & shortName);
void setDefinition(const api::ILangStringSet & definition);
void setUnit(const std::string & unit) override;
void setUnitId(std::unique_ptr<api::IReference> unitId);
void setSourceOfDefinition(const std::string & sourceOfDefinition) override;
void setSymbol(const std::string & symbol);
void setDataType(DataTypeIEC61360 dataType) override;
void setValueFormat(const std::string & valueFormat) override;
/* TODO
void setValueList(const MISSINGTYPE);
void setValueDataType(const MISSINGTYPE);
*/
void setValueId(std::unique_ptr<api::IReference> valueId);
void setLevelType(LevelType levelType) override;
private:
map::LangStringSet preferred_name, short_name, definition;
std::unique_ptr<api::IReference> unitId, valueId;
};
}
}
}
#endif //BASYX_MAP_V2_SDK_DATASPECIFICATIONIEC61360_H