temperature_feature.hh
Go to the documentation of this file.
1 // BSD License
2 //
3 // Copyright (c) 2021, Ascent Robotics, Inc.
4 // All rights reserved.
5 
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are met:
8 
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 // * Redistributions in binary form must reproduce the above copyright
12 // notice, this list of conditions and the following disclaimer in the
13 // documentation and/or other materials provided with the distribution.
14 // * Neither the name of Ascent Robotics, Inc. nor the names of its
15 // contributors may be used to endorse or promote products derived from
16 // this software without specific prior written permission.
17 
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 // POSSIBILITY OF SUCH DAMAGE.
29 
30 // Author Thomas Kostas/thomas.kostas@ascent.ai
31 
32 #pragma once
33 #include <optional>
34 
35 #include <sensors/sensors.h>
36 
38 {
40 {
41  std::string label_;
42  double temperature_ = 0;
43  bool is_ok_ = false;
44 };
45 
47 {
48  public:
49  static std::optional<TemperatureFeature>
50  make_temp_feature(const sensors_chip_name* chip_name,
51  const sensors_feature* feature,
52  double default_critical_temp = 100,
53  double defaut_max_temp = 85);
55  read_temperature_info(const sensors_chip_name* chip_name) const;
56  std::string get_label() const;
57 
58  void set_critical_temp(double critical_temp)
59  {
60  crit_temp_ = critical_temp;
61  }
62 
63  void set_max_temp(double max_temp)
64  {
65  max_temp_ = max_temp;
66  }
67 
68  private:
69  TemperatureFeature(const sensors_chip_name* chip_name,
70  const sensors_feature* feature,
71  double default_critical_temp,
72  double defaut_max_temp);
73  std::string label_;
74  double max_temp_;
75  double crit_temp_;
76  const sensors_subfeature* input_temp_subfeature_;
77 };
78 } // namespace cpu_temperature_diagnostics


cpu_temperature_diagnostics
Author(s):
autogenerated on Mon Feb 28 2022 22:08:46