/* * FRAMACCESS.h * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include #include "framework.h" #include "FRAM/FRAMVariant.h" #ifndef FRAM_FRAMDATAOBJECTS_H_ #define FRAM_FRAMDATAOBJECTS_H_ namespace FRAM { class FRAMDataObjects { private: uint16_t m_address; bool m_is_read_only; void* m_pParam; FRAM::FRAMVariant m_default_value; public: FRAMDataObjects(); void restore_default_value(); void add_register_float(uint16_t address, uint8_t readonly, float* pParam, float default_value); void add_register_int16(uint16_t address, uint8_t readonly, int16_t* pParam, int16_t default_value); void add_register_int32(uint16_t address, uint8_t readonly, int32_t* pParam, int32_t default_value); void add_register_uint16(uint16_t address, uint8_t readonly, uint16_t* pParam, uint16_t default_value); void add_register_uint32(uint16_t address, uint8_t readonly, uint32_t* pParam, uint32_t default_value); void add_register_bool(uint16_t address, uint8_t readonly, bool* pParam, bool default_value); public: uint16_t get_address() const; void write_parameter(const void *pBuffer, uint8_t buffer_size); void read_parameter(void *pBuffer, uint8_t buffer_size) const; public: void fram_write_parameter(); void fram_read_parameter(); public: void write_to_fram_data(Uint16 *Dest, Uint32 Length); void read_from_fram_data(Uint16 *BufAddr, Uint32 Length); }; } /* namespace FRAM */ #endif /* FRAM_FRAMDATAOBJECTS_H_ */