/* * nbus_memory.h * * Created on: Nov 4, 2023 * Author: juraj */ #ifndef MODULES_NBUS_INC_NBUS_MEMORY_H_ #define MODULES_NBUS_INC_NBUS_MEMORY_H_ #include "mcu_platform.h" typedef struct{ uint8_t (*init)(void*, uint16_t); uint32_t (*read_word)(uint16_t); uint16_t (*read_half_word)(uint16_t); /** * @brief Zapíše 4B hodnotu na adresu * @param uint32_t data dáta * @param uint16_t address adresa v pamati. Povolený rozsah: 0-0x09FF */ uint8_t (*write_word)(uint32_t data, uint16_t address); uint8_t (*write_half_word)(uint16_t, uint16_t); uint8_t (*read_id)(uint8_t*); } nBus_MemoryDriver; typedef enum{ MEMORY_STORE_FAIL, MEMORY_STORE_OK, }nBus_memoryState_t; typedef struct { uint8_t (*storeParam)(uint8_t sensor_index, uint8_t param_name, uint32_t param_value); uint32_t (*getParam)(uint8_t sensor_index, uint8_t param_name); uint8_t (*getId)(uint8_t*); }nBus_memoryInterface_t; nBus_memoryInterface_t *getnbusMemoryInterface(void); void nbus_memory_init(nBus_MemoryDriver *driver); /** * @brief Store sensor parameter. */ nBus_memoryState_t nbus_store_param(uint8_t sensor_index, uint8_t param_name, uint32_t param_value); uint32_t nbus_read_param(uint8_t sensor_index, uint8_t param_name); uint8_t nbus_memory_id(uint8_t*); #endif /* MODULES_NBUS_INC_NBUS_MEMORY_H_ */