From e08a707c9fe9be1204cd8ebe6f91bf35e6f2523a Mon Sep 17 00:00:00 2001 From: athatheocsd <athatheo@csd.auth.gr> Date: Tue, 27 Nov 2018 19:46:05 +0200 Subject: [PATCH] Fixed the way to append auxiliary data --- src/Services/EventReportService.cpp | 24 ++++++++++++++++-------- src/main.cpp | 10 +++++----- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/Services/EventReportService.cpp b/src/Services/EventReportService.cpp index 61f528f6..48616b8a 100644 --- a/src/Services/EventReportService.cpp +++ b/src/Services/EventReportService.cpp @@ -1,13 +1,21 @@ #include "Services/EventReportService.hpp" #include "Message.hpp" +/** + * Note for the funtions informativeEventReport, lowSeverityReport, mediumSeverityReport, + * highSeverityReport: I could use + * for (int i=0; i<length; i++ { + * report.appendByte(data[i]); + * } + * instead of reinterpret_cast as it is a dangerous cast + */ void EventReportService::informativeEventReport(uint16_t eventID, const uint8_t *data, uint8_t length){ // TM[5,1] Message report = createTM(1); - report.appendBits(16, eventID); - report.appendString(length, (char *)data); + report.appendBits(ECSS_EVENTS_BITS, eventID); + report.appendString(length, reinterpret_cast<const char*>(data)); storeMessage(report); } @@ -15,8 +23,8 @@ void EventReportService::lowSeverityAnomalyReport(uint16_t eventID, const uint8_ uint8_t length ){ // TM[5,2] Message report = createTM(2); - report.appendBits(16, eventID); - report.appendString(length, (char *)data); + report.appendBits(ECSS_EVENTS_BITS, eventID); + report.appendString(length, reinterpret_cast<const char*>(data)); storeMessage(report); } @@ -24,8 +32,8 @@ void EventReportService::mediumSeverityAnomalyReport(uint16_t eventID, const uin uint8_t length){ // TM[5,3] Message report = createTM(3); - report.appendBits(16, eventID); - report.appendString(length, (char *)data); + report.appendBits(ECSS_EVENTS_BITS, eventID); + report.appendString(length, reinterpret_cast<const char*>(data)); storeMessage(report); } @@ -33,7 +41,7 @@ void EventReportService::highSeverityAnomalyReport(uint16_t eventID, const uint8 uint8_t length){ // TM[5,4] Message report = createTM(4); - report.appendBits(16, eventID); - report.appendString(length, (char *)data); + report.appendBits(ECSS_EVENTS_BITS, eventID); + report.appendString(length, reinterpret_cast<const char*>(data)); storeMessage(report); } diff --git a/src/main.cpp b/src/main.cpp index a7a48243..f2dcbbc8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -40,12 +40,12 @@ int main() { reqVerifService.failRoutingVerification(Message::TC, true, 2, 2, 10, 7); // ST[05] test [works] - char data[12] = "Hello World"; + const unsigned char data[12] = "Hello World"; EventReportService eventReportService; - eventReportService.informativeEventReport(1, (const uint8_t *)data, 11); - eventReportService.lowSeverityAnomalyReport(2, (const uint8_t *)data, 11); - eventReportService.mediumSeverityAnomalyReport(3, (const uint8_t *)data, 11); - eventReportService.highSeverityAnomalyReport(4, (const uint8_t *)data, 11); + eventReportService.informativeEventReport(1, data, 11); + eventReportService.lowSeverityAnomalyReport(2, data, 11); + eventReportService.mediumSeverityAnomalyReport(3, data, 11); + eventReportService.highSeverityAnomalyReport(4, data, 11); return 0; } -- GitLab