diff --git a/inc/Services/ParameterService.hpp b/inc/Services/ParameterService.hpp index 5d8d5176f6b98b38a440a7b0b2a65efc45174f4e..36050f2e22b0bd3e7a04c8c905c346ee68ef414d 100644 --- a/inc/Services/ParameterService.hpp +++ b/inc/Services/ParameterService.hpp @@ -3,6 +3,7 @@ #include "Service.hpp" #define CONFIGLENGTH 5 + /** * Implementation of the ST[20] parameter management service, * as defined in ECSS-E-ST-70-41C diff --git a/src/Services/ParameterService.cpp b/src/Services/ParameterService.cpp index 08b775ffd09fe91f55b8dc18882525b2335bc209..798888d589d382a79d94aae354e6a7fbea2d01e4 100644 --- a/src/Services/ParameterService.cpp +++ b/src/Services/ParameterService.cpp @@ -12,7 +12,7 @@ ParameterService::ParameterService() { * This normally will be initialized with actual values on boot. */ - for (int i = 0; i < 5; i++) { // hack just to shut CLion up (warning about range-based for loops) + for (int i = 0; i < CONFIGLENGTH; i++) { paramsList[i].paramId = 0; paramsList[i].settingData = 0; @@ -45,16 +45,16 @@ Message ParameterService::reportParameter(Message paramId) { */ Message reqParam(20, 2, Message::TM, 1); // empty TM[20, 2] parameter report message - uint16_t reqParamId = paramId.readHalfword(); // parameter ID must be accessed only once + uint16_t reqParamId = paramId.readUint16(); // parameter ID must be accessed only once if (paramId.packetType == Message::TC && paramId.serviceType == 20 && paramId.messageType == 1) { - for (int i = 0; i < 5; i++) { + for (int i = 0; i < CONFIGLENGTH; i++) { if (paramsList[i].paramId == reqParamId) { - reqParam.appendHalfword(paramsList[i].paramId); - reqParam.appendWord(paramsList[i].settingData); + reqParam.appendUint16(paramsList[i].paramId); + reqParam.appendUint32(paramsList[i].settingData); break; } } @@ -65,4 +65,5 @@ Message ParameterService::reportParameter(Message paramId) { /*void ParameterService::setParamData(Message paramId) { -}*/ \ No newline at end of file +}*/ + diff --git a/src/main.cpp b/src/main.cpp index 62e5b60fce0ea459152221c9bd737afeb86673a4..4d2f13c081e0799e5bd51a9b922622445ae1066a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,9 +31,13 @@ int main() { //ST[20] test ParameterService paramService; Message sentPacket = Message(20, 1, Message::TC, 1); //application id is a dummy number (1) - sentPacket.appendHalfword(341); //the packet sent contains the ID of the desired parameter + sentPacket.appendUint16(341); //the packet sent contains the ID of the desired parameter Message returnedPacket = paramService.reportParameter(sentPacket); - std::cout << "Parameter ID: " << returnedPacket.readHalfword() << "Parameter value: " << returnedPacket.readHalfword() << std::endl; + + uint16_t id = returnedPacket.readUint16(); + uint32_t val = returnedPacket.readUint32(); + + std::cout << "Parameter ID: " << std::dec << id << std::endl << "Parameter value: " << std::dec << val << std::endl; return 0; }