Fan control: Add Manager class and fan data
Create the fan manager class.
Check in the fan zone data as a normal file. In a future commit
this will be generated during the compile. It is required now
for review and so everything compiles.
Change-Id: I5733b81db80c5e072abdbffd42e335fa46c61ef8
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/control/generated.cpp b/control/generated.cpp
new file mode 100644
index 0000000..e6ed723
--- /dev/null
+++ b/control/generated.cpp
@@ -0,0 +1,25 @@
+#include "manager.hpp"
+
+//This will eventually be generated by a script.
+
+using namespace phosphor::fan::control;
+
+const std::vector<ZoneGroup> Manager::_zoneLayouts
+{
+ //Air cooled
+ std::make_tuple(std::vector<Condition>{},
+ std::vector<ZoneDefinition>{std::make_tuple(0, 10500,
+ std::vector<FanDefinition>{
+ std::make_tuple("/system/chassis/motherboard/fan0", std::vector<std::string>{"fan0"}),
+ std::make_tuple("/system/chassis/motherboard/fan1", std::vector<std::string>{"fan1"}),
+ std::make_tuple("/system/chassis/motherboard/fan2", std::vector<std::string>{"fan2"}),
+ std::make_tuple("/system/chassis/motherboard/fan3", std::vector<std::string>{"fan3"})})}),
+
+ //Water and air cooled
+ std::make_tuple(std::vector<Condition>{},
+ std::vector<ZoneDefinition>{std::make_tuple(0, 10500,
+ std::vector<FanDefinition>{
+ std::make_tuple("/system/chassis/motherboard/fan0", std::vector<std::string>{"fan0"}),
+ std::make_tuple("/system/chassis/motherboard/fan2", std::vector<std::string>{"fan2"}),
+ std::make_tuple("/system/chassis/motherboard/fan3", std::vector<std::string>{"fan3"})})})
+};