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
50 lines
1.5 KiB
C
5 months ago
|
/*
|
||
|
* 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_ */
|