#pragma once #include "Parameter.h" template class MinMaxParameter : public Parameter { #ifdef FSFW_INTROSPECTION private: MinMaxParameter(Action *owner, const char *name, T min, T max) : Parameter(owner, name), min(min), max(max) {} public: static MinMaxParameter createMinMaxParameter(Action *owner, const char *name, T min, T max) { return MinMaxParameter(owner, name, min, max); } virtual double getMinFloating() override { return static_cast(min); } virtual int64_t getMinSigned() override { return static_cast(min); } virtual double getMaxFloating() override { return static_cast(max); } virtual int64_t getMaxSigned() override { return static_cast(max); } #else private: MinMaxParameter(Action *owner, T min, T max) : Parameter(owner), min(min), max(max) {} public: static MinMaxParameter createMinMaxParameter(Action *owner, T min, T max) { return MinMaxParameter(owner, min, max); } #endif private: T min; T max; }; #ifdef FSFW_INTROSPECTION #define createMinMaxParameter(p1, p2, p3, p4) createMinMaxParameter(p1, p2, p3, p4) #else #define createMinMaxParameter(p1, p2, p3, p4) createMinMaxParameter(p1, p3, p4) #endif