dbus: move debugPrint to util
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: Idbea54f13527a4ca3108cc4dccbee07b7b3a7d34
diff --git a/Makefile.am b/Makefile.am
index b859f32..7465a72 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -79,6 +79,7 @@
$(CODE_COVERAGE_CXXFLAGS)
libswampd_la_SOURCES = \
+ util.cpp \
notimpl/readonly.cpp \
notimpl/writeonly.cpp \
dbus/dbusconfiguration.cpp \
diff --git a/conf.hpp b/conf.hpp
index 428d446..f2157e1 100644
--- a/conf.hpp
+++ b/conf.hpp
@@ -60,5 +60,7 @@
using PIDConf = std::map<std::string, struct ControllerInfo>;
+constexpr bool DEBUG = false; // enable to print found configuration
+
} // namespace conf
} // namespace pid_control
diff --git a/dbus/dbusconfiguration.cpp b/dbus/dbusconfiguration.cpp
index a33a966..09f0d88 100644
--- a/dbus/dbusconfiguration.cpp
+++ b/dbus/dbusconfiguration.cpp
@@ -37,8 +37,6 @@
namespace pid_control
{
-static constexpr bool DEBUG = false; // enable to print found configuration
-
extern std::map<std::string, struct conf::SensorConfig> sensorConfig;
extern std::map<int64_t, conf::PIDConf> zoneConfig;
extern std::map<int64_t, struct conf::ZoneConfig> zoneDetailsConfig;
@@ -87,74 +85,6 @@
return retString;
}
-// this function prints the configuration into a form similar to the cpp
-// generated code to help in verification, should be turned off during normal
-// use
-void debugPrint(void)
-{
- // print sensor config
- std::cout << "sensor config:\n";
- std::cout << "{\n";
- for (const auto& pair : sensorConfig)
- {
-
- std::cout << "\t{" << pair.first << ",\n\t\t{";
- std::cout << pair.second.type << ", ";
- std::cout << pair.second.readPath << ", ";
- std::cout << pair.second.writePath << ", ";
- std::cout << pair.second.min << ", ";
- std::cout << pair.second.max << ", ";
- std::cout << pair.second.timeout << "},\n\t},\n";
- }
- std::cout << "}\n\n";
- std::cout << "ZoneDetailsConfig\n";
- std::cout << "{\n";
- for (const auto& zone : zoneDetailsConfig)
- {
- std::cout << "\t{" << zone.first << ",\n";
- std::cout << "\t\t{" << zone.second.minThermalOutput << ", ";
- std::cout << zone.second.failsafePercent << "}\n\t},\n";
- }
- std::cout << "}\n\n";
- std::cout << "ZoneConfig\n";
- std::cout << "{\n";
- for (const auto& zone : zoneConfig)
- {
- std::cout << "\t{" << zone.first << "\n";
- for (const auto& pidconf : zone.second)
- {
- std::cout << "\t\t{" << pidconf.first << ",\n";
- std::cout << "\t\t\t{" << pidconf.second.type << ",\n";
- std::cout << "\t\t\t{";
- for (const auto& input : pidconf.second.inputs)
- {
- std::cout << "\n\t\t\t" << input << ",\n";
- }
- std::cout << "\t\t\t}\n";
- std::cout << "\t\t\t" << pidconf.second.setpoint << ",\n";
- std::cout << "\t\t\t{" << pidconf.second.pidInfo.ts << ",\n";
- std::cout << "\t\t\t" << pidconf.second.pidInfo.proportionalCoeff
- << ",\n";
- std::cout << "\t\t\t" << pidconf.second.pidInfo.integralCoeff
- << ",\n";
- std::cout << "\t\t\t" << pidconf.second.pidInfo.feedFwdOffset
- << ",\n";
- std::cout << "\t\t\t" << pidconf.second.pidInfo.feedFwdGain
- << ",\n";
- std::cout << "\t\t\t{" << pidconf.second.pidInfo.integralLimit.min
- << "," << pidconf.second.pidInfo.integralLimit.max
- << "},\n";
- std::cout << "\t\t\t{" << pidconf.second.pidInfo.outLim.min << ","
- << pidconf.second.pidInfo.outLim.max << "},\n";
- std::cout << "\t\t\t" << pidconf.second.pidInfo.slewNeg << ",\n";
- std::cout << "\t\t\t" << pidconf.second.pidInfo.slewPos << ",\n";
- std::cout << "\t\t\t}\n\t\t}\n";
- }
- std::cout << "\t},\n";
- }
- std::cout << "}\n\n";
-}
-
std::vector<std::string> getSelectedProfiles(sdbusplus::bus::bus& bus)
{
std::vector<std::string> ret;
@@ -211,7 +141,7 @@
ret.emplace_back(std::move(mode));
}
}
- if constexpr (DEBUG)
+ if constexpr (pid_control::conf::DEBUG)
{
std::cout << "Profiles selected: ";
for (const auto& profile : ret)
@@ -949,9 +879,9 @@
}
}
}
- if constexpr (DEBUG)
+ if constexpr (pid_control::conf::DEBUG)
{
- debugPrint();
+ debugPrint(sensorConfig, zoneConfig, zoneDetailsConfig);
}
if (zoneConfig.empty() || zoneDetailsConfig.empty())
{
diff --git a/util.cpp b/util.cpp
new file mode 100644
index 0000000..4ecd8ce
--- /dev/null
+++ b/util.cpp
@@ -0,0 +1,99 @@
+/*
+// Copyright (c) 2018 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+*/
+#include "util.hpp"
+
+#include "conf.hpp"
+
+#include <cstdint>
+#include <iostream>
+#include <map>
+#include <string>
+
+namespace pid_control
+{
+
+void debugPrint(const std::map<std::string, conf::SensorConfig>& sensorConfig,
+ const std::map<int64_t, conf::PIDConf>& zoneConfig,
+ const std::map<int64_t, conf::ZoneConfig>& zoneDetailsConfig)
+{
+ if constexpr (!conf::DEBUG)
+ {
+ return;
+ }
+ // print sensor config
+ std::cout << "sensor config:\n";
+ std::cout << "{\n";
+ for (const auto& pair : sensorConfig)
+ {
+
+ std::cout << "\t{" << pair.first << ",\n\t\t{";
+ std::cout << pair.second.type << ", ";
+ std::cout << pair.second.readPath << ", ";
+ std::cout << pair.second.writePath << ", ";
+ std::cout << pair.second.min << ", ";
+ std::cout << pair.second.max << ", ";
+ std::cout << pair.second.timeout << "},\n\t},\n";
+ }
+ std::cout << "}\n\n";
+ std::cout << "ZoneDetailsConfig\n";
+ std::cout << "{\n";
+ for (const auto& zone : zoneDetailsConfig)
+ {
+ std::cout << "\t{" << zone.first << ",\n";
+ std::cout << "\t\t{" << zone.second.minThermalOutput << ", ";
+ std::cout << zone.second.failsafePercent << "}\n\t},\n";
+ }
+ std::cout << "}\n\n";
+ std::cout << "ZoneConfig\n";
+ std::cout << "{\n";
+ for (const auto& zone : zoneConfig)
+ {
+ std::cout << "\t{" << zone.first << "\n";
+ for (const auto& pidconf : zone.second)
+ {
+ std::cout << "\t\t{" << pidconf.first << ",\n";
+ std::cout << "\t\t\t{" << pidconf.second.type << ",\n";
+ std::cout << "\t\t\t{";
+ for (const auto& input : pidconf.second.inputs)
+ {
+ std::cout << "\n\t\t\t" << input << ",\n";
+ }
+ std::cout << "\t\t\t}\n";
+ std::cout << "\t\t\t" << pidconf.second.setpoint << ",\n";
+ std::cout << "\t\t\t{" << pidconf.second.pidInfo.ts << ",\n";
+ std::cout << "\t\t\t" << pidconf.second.pidInfo.proportionalCoeff
+ << ",\n";
+ std::cout << "\t\t\t" << pidconf.second.pidInfo.integralCoeff
+ << ",\n";
+ std::cout << "\t\t\t" << pidconf.second.pidInfo.feedFwdOffset
+ << ",\n";
+ std::cout << "\t\t\t" << pidconf.second.pidInfo.feedFwdGain
+ << ",\n";
+ std::cout << "\t\t\t{" << pidconf.second.pidInfo.integralLimit.min
+ << "," << pidconf.second.pidInfo.integralLimit.max
+ << "},\n";
+ std::cout << "\t\t\t{" << pidconf.second.pidInfo.outLim.min << ","
+ << pidconf.second.pidInfo.outLim.max << "},\n";
+ std::cout << "\t\t\t" << pidconf.second.pidInfo.slewNeg << ",\n";
+ std::cout << "\t\t\t" << pidconf.second.pidInfo.slewPos << ",\n";
+ std::cout << "\t\t\t}\n\t\t}\n";
+ }
+ std::cout << "\t},\n";
+ }
+ std::cout << "}\n\n";
+}
+
+} // namespace pid_control
diff --git a/util.hpp b/util.hpp
index efe920c..032e1ca 100644
--- a/util.hpp
+++ b/util.hpp
@@ -1,11 +1,14 @@
#pragma once
+#include "conf.hpp"
#include "pid/ec/pid.hpp"
#include <phosphor-logging/log.hpp>
#include <sdbusplus/bus.hpp>
+#include <cstdint>
#include <limits>
+#include <map>
#include <string>
namespace pid_control
@@ -37,4 +40,11 @@
*/
std::string FixupPath(std::string original);
+/*
+ * Dump active configuration.
+ */
+void debugPrint(const std::map<std::string, conf::SensorConfig>& sensorConfig,
+ const std::map<int64_t, conf::PIDConf>& zoneConfig,
+ const std::map<int64_t, conf::ZoneConfig>& zoneDetailsConfig);
+
} // namespace pid_control