/* * FRAMVariant.h * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include #include "SYSCTRL/SystemDefinitions.h" #ifndef FRAM_FRAMVARIANT_H_ #define FRAM_FRAMVARIANT_H_ namespace FRAM { typedef unsigned char uint8_t; enum fram_variant_type_t {FRAM_VARIANT_UNDEFINED, FRAM_VARIANT_FLOAT, FRAM_VARIANT_INT16, FRAM_VARIANT_INT32, FRAM_VARIANT_UINT16, FRAM_VARIANT_UINT32, FRAM_VARIANT_BOOL}; class FRAMVariant { private: union { float f; int16_t i16; int32_t i32; uint16_t u16; uint32_t u32; bool b; SYSCTRL::Register16 r16; SYSCTRL::Register32 r32; }; private: fram_variant_type_t t; public: FRAMVariant(); fram_variant_type_t get_type() const; //setters void set_float(float v); void set_int16(int16_t v); void set_int32(int32_t v); void set_uint16(uint16_t v); void set_uint32(uint32_t v); void set_bool(bool v); //getters float get_float() const; int16_t get_int16() const; int32_t get_int32() const; uint16_t get_uint16() const; uint32_t get_uint32() const; bool get_bool() const; // };//class fram_variant_t // }/* namespace FRAM */ #endif /* FRAM_FRAMVARIANT_H_ */