From 8e287197cd14923ddf36afdf9bc2cfbc00fbcf69 Mon Sep 17 00:00:00 2001 From: Martin Hierholzer <martin.hierholzer@desy.de> Date: Tue, 31 Mar 2020 12:04:08 +0200 Subject: [PATCH] wip #6587: small refactoring of TecDummy::processFrame() --- tests/src/TecDummy.cc | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/tests/src/TecDummy.cc b/tests/src/TecDummy.cc index 21539f1..02d8997 100644 --- a/tests/src/TecDummy.cc +++ b/tests/src/TecDummy.cc @@ -126,27 +126,24 @@ std::string TecDummy::processFrame(const std::string& command) { auto parsedFrame = splitFrame(command); std::string result = ""; - // lastWriteToFlash[TecFrame::ParameterSystemFlashSaveOff] should be a - // safe default. TecFrame::ParameterSystemFlashSaveOff is a dummy entry for - // lastWriteToFlash. - uint32_t parameterId = TecFrame::ParameterSystemFlashSaveOff; + // extract parameter ID + auto parameterId = + static_cast<TecFrame::TecParameter>(std::stoul("0x" + parsedFrame[TecFramePart::PARAMETER_ID], nullptr, 16)); // Handle store command if(parsedFrame[TecFramePart::COMMAND] == "VS") { - parameterId = std::stoul("0x" + parsedFrame[TecFramePart::PARAMETER_ID], 0, 16); - int32_t value = std::stol("0x" + parsedFrame[TecFramePart::PAYLOAD], 0, 16); + int32_t value = std::stol("0x" + parsedFrame[TecFramePart::PAYLOAD], nullptr, 16); std::cout << "Storing raw value " << value << "(" << parsedFrame[TecFramePart::PAYLOAD] << ") for parameter " << parameterId << std::endl; - rawValues[static_cast<TecFrame::TecParameter>(parameterId)] = value; + rawValues[parameterId] = value; result = "!" + parsedFrame[TecFramePart::ADDRESS] + parsedFrame[TecFramePart::SEQUENCE]; result += getCrc(result); } else if(parsedFrame[TecFramePart::COMMAND] == "?VR") { - parameterId = std::stoul("0x" + parsedFrame[TecFramePart::PARAMETER_ID], 0, 16); result = "!" + parsedFrame[TecFramePart::ADDRESS] + parsedFrame[TecFramePart::SEQUENCE]; std::stringstream ss; - ss << std::hex << std::setw(8) << std::setfill('0') << rawValues[static_cast<TecFrame::TecParameter>(parameterId)]; + ss << std::hex << std::setw(8) << std::setfill('0') << rawValues[parameterId]; result += ss.str(); result += getCrc(result); } @@ -154,7 +151,7 @@ std::string TecDummy::processFrame(const std::string& command) { // // mark received parameter as written to flash or not auto isLastWriteToFlash = (not rawValues.at(TecFrame::ParameterSystemFlashSaveOff)) ? true : false; - lastWriteToFlash[static_cast<TecFrame::TecParameter>(parameterId)] = isLastWriteToFlash; + lastWriteToFlash[parameterId] = isLastWriteToFlash; std::cout << "Returning result " << result << std::endl; -- GitLab