27 return sizeof(m_buff);
34 const U8* getBuffAddr()
const {
50 this->m_fileName = file;
57 void PrmDbImpl::clearDb() {
58 for (I32 entry = 0; entry < PRMDB_NUM_DB_ENTRIES; entry++) {
59 this->m_db[entry].used =
false;
60 this->m_db[entry].id = 0;
71 for (I32 entry = 0; entry < PRMDB_NUM_DB_ENTRIES; entry++) {
72 if (this->m_db[entry].used) {
73 if (this->m_db[entry].
id ==
id) {
74 val = this->m_db[entry].val;
95 bool existingEntry =
false;
98 for (
NATIVE_INT_TYPE entry = 0; entry < PRMDB_NUM_DB_ENTRIES; entry++) {
99 if ((this->m_db[entry].used) && (
id == this->m_db[entry].
id)) {
100 this->m_db[entry].val = val;
101 existingEntry =
true;
107 if (!existingEntry) {
108 for (I32 entry = 0; entry < PRMDB_NUM_DB_ENTRIES; entry++) {
109 if (!(this->m_db[entry].used)) {
110 this->m_db[entry].val = val;
111 this->m_db[entry].id = id;
112 this->m_db[entry].used =
true;
123 }
else if (noSlots) {
131 void PrmDbImpl::PRM_SAVE_FILE_cmdHandler(
FwOpcodeType opCode, U32 cmdSeq) {
150 if (this->m_db[entry].used) {
152 static const U8 delim = PRMDB_ENTRY_DELIMITER;
154 stat = paramFile.
write(&delim,writeSize,
true);
161 if (writeSize !=
sizeof(delim)) {
177 writeSize = buff.getBuffLength();
178 stat = paramFile.
write(buff.getBuffAddr(),writeSize,
true);
185 if (writeSize !=
sizeof(writeSize)) {
197 serStat = buff.serialize(this->m_db[entry].
id);
202 writeSize = buff.getBuffLength();
203 stat = paramFile.
write(buff.getBuffAddr(),writeSize,
true);
263 for (
NATIVE_INT_TYPE entry = 0; entry < PRMDB_NUM_DB_ENTRIES; entry++) {
281 if (
sizeof(delimiter) != readSize) {
286 if (PRMDB_ENTRY_DELIMITER != delimiter) {
293 readSize =
sizeof(recordSize);
295 fStat = paramFile.
read(buff.getBuffAddr(),readSize,
true);
300 if (
sizeof(recordSize) != readSize) {
324 fStat = paramFile.
read(buff.getBuffAddr(),readSize,
true);
335 desStat = buff.setBuffLen(readSize);
344 this->m_db[entry].used =
true;
345 this->m_db[entry].id = parameterId;
346 readSize = recordSize-
sizeof(parameterId);
354 if (
static_cast<U32
>(readSize) != recordSize-
sizeof(parameterId)) {
360 desStat = this->m_db[entry].val.
setBuffLen(readSize);
PlatformIntType NATIVE_INT_TYPE
uint8_t U8
8-bit unsigned integer
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
PlatformUIntType NATIVE_UINT_TYPE
#define FW_PARAM_BUFFER_MAX_SIZE
Component for managing parameters.
@ EXECUTION_ERROR
Command had execution error.
@ OK
Command successfully executed.
void init()
Object initializer.
U8 * getBuffAddr()
gets buffer address for data filling
Enum representing parameter validity.
SerializeStatus setBuffLen(NATIVE_UINT_TYPE length)
sets buffer length manually after filling with data
NATIVE_UINT_TYPE getBuffLength() const
returns current buffer size
NATIVE_UINT_TYPE length() const
Get length of string.
const char * toChar() const
gets char buffer
@ OP_OK
Operation was successful.
Status write(const void *buffer, NATIVE_INT_TYPE &size, bool waitForDone=true)
write size; will return amount written or errno
@ OPEN_WRITE
Open file for writing.
@ OPEN_READ
Open file for reading.
Status open(const char *fileName, Mode mode)
open file. Writing creates file if it doesn't exist
Status read(void *buffer, NATIVE_INT_TYPE &size, bool waitForFull=true)
waitForFull = true to wait for all bytes to be read
Auto-generated base for PrmDb component.
virtual void unLock()
Unlock the guarded mutex.
void log_WARNING_HI_PrmFileReadError(Svc::PrmDb_PrmReadError stage, I32 record, I32 error)
void log_WARNING_HI_PrmFileWriteError(Svc::PrmDb_PrmWriteError stage, I32 record, I32 error)
void log_ACTIVITY_HI_PrmIdUpdated(U32 Id)
virtual void lock()
Lock the guarded mutex.
void log_FATAL_PrmDbFull(U32 Id)
void pingOut_out(NATIVE_INT_TYPE portNum, U32 key)
Invoke output port pingOut.
void log_ACTIVITY_HI_PrmFileLoadComplete(U32 records)
void log_WARNING_LO_PrmIdNotFound(U32 Id)
void log_ACTIVITY_HI_PrmFileSaveComplete(U32 records)
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void log_ACTIVITY_HI_PrmIdAdded(U32 Id)
void readParamFile()
PrmDb file read function.
virtual ~PrmDbImpl()
PrmDb destructor.
PrmDbImpl(const char *name)
PrmDb constructor.
void configure(const char *file)
PrmDb configure method.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
PrmDb_PrmReadError PrmReadError
PrmDb_PrmWriteError PrmWriteError