xref: /openbmc/phosphor-pid-control/sysfs/sysfswrite.cpp (revision 46a755fce8dc0bdd9c0c5ea09d55d3e5494f335f)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright 2017 Google Inc
3 
4 #include "sysfswrite.hpp"
5 
6 #include <cstdint>
7 #include <fstream>
8 #include <iostream>
9 
10 namespace pid_control
11 {
12 
write(double value)13 void SysFsWritePercent::write(double value)
14 {
15     double minimum = getMin();
16     double maximum = getMax();
17 
18     double range = maximum - minimum;
19     double offset = range * value;
20     double ovalue = offset + minimum;
21 
22     std::ofstream ofs;
23     ofs.open(_writePath);
24     ofs << static_cast<int64_t>(ovalue);
25     ofs.close();
26 
27     return;
28 }
29 
write(double value)30 void SysFsWrite::write(double value)
31 {
32     std::ofstream ofs;
33     ofs.open(_writePath);
34     ofs << static_cast<int64_t>(value);
35     ofs.close();
36 
37     return;
38 }
39 
40 } // namespace pid_control
41