You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.5 KiB
C

/*
* FRAMACCESS.h
*
* Author: Aleksey Gerasimenko
* gerasimenko.aleksey.n@gmail.com
*/
#include <stdint.h>
#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_ */