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