define line for log-entry

This commit is contained in:
Gerhard Hoffmann 2025-04-11 12:26:29 +02:00
parent 0c0debb790
commit ac03f4ae91

View File

@ -0,0 +1,69 @@
#ifndef LOG_LINE_ENTRY_H_INCLUDED
#define LOG_LINE_ENTRY_H_INCLUDED
#include <cstring>
#include <algorithm>
struct LogLineEntry {
char receiver; // 1 receiver can be: ISMAS
char reason[5]; // 6 SW_UP
char timestamp[19]; // 25 ISO-format: 1900-xx-xxT00:00:00
char eventId; // 26
char event[5]; // 31
/*
Note:
! After U0002 immer ein CMD_SENDVERSION
! Only U0002 and U0003 finish the Update process.
! U0001: Update finished but not activated
! U0002: Update finished and activated
! U0003: Update finished but FAILed.
*/
// #define _ISMAS_DONE "U0001" // 100%, Check: Resultcode: 0
// #define _ISMAS_SET_WAIT_OK "U0002" // empty WAIT-button (""), ResultCode: 0
// #define _ISMAS_NO_UPDATE_NECESSARY "M0100" // empty WAIT-button (""), ResultCode: 0
// #define _ISMAS_FAILURE "U0003" // FAIL
// #define _ISMAS_CONTINUE "U0010" // %-values: Update laeuft, Resultcodes entsprechend laufender Schritt
// #define _ISMAS_RESET_WAIT "ISMAS" // reset WAIT-button to "WAIT"
// #define _ISMAS_TEST_TRIGGER "U0099" // check the WAIT-button
char eventState; // 32
char percent; // 33 percent in progressbar of update-tool
char resultCode; // 34
char step[40]; // 74 step executed
char stepResult[40];// 114 result for step
char version[13]; // 127
char dummy; // 128
};
inline static LogLineEntry initLogLineEntry(
char const receiver,
char const timestamp[19],
char const event[5],
char const eventState,
char const percent,
char const resultCode,
char const step[40],
char const stepResult[40],
char const eventId = 0,
char const reason[5] = "SW_UP",
char const version[14] = "") {
LogLineEntry e;
memset(&e, 0, sizeof(e));
e.receiver = receiver;
std::memcpy(e.reason, reason, std::min(sizeof(e.reason), strlen(reason)));
std::memcpy(e.timestamp, timestamp, std::min(sizeof(e.timestamp), strlen(timestamp)));
e.eventId = eventId;
std::memcpy(e.event, event, std::min(sizeof(e.event), strlen(event)));
e.eventState = eventState;
e.percent = percent;
e.resultCode = resultCode;
std::memcpy(e.step, step, std::min(sizeof(e.step), strlen(step)));
std::memcpy(e.stepResult, stepResult, std::min(sizeof(e.stepResult), strlen(stepResult)));
std::memcpy(e.version, version, std::min(sizeof(e.version), strlen(version)));
e.dummy = '\0';
return e;
}
#endif // LOG_LINE_ENTRY_H_INCLUDED