#ifndef LOG_LINE_ENTRY_H_INCLUDED #define LOG_LINE_ENTRY_H_INCLUDED #include #include 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