43 std::unique_ptr<cpu_temperature_diagnostics::CpuTemperatureDiagnostic>>
44 create_diagnostics(std::string& prefix)
50 std::unique_ptr<cpu_temperature_diagnostics::CpuTemperatureDiagnostic>>
53 for (
auto& chip : chips)
55 auto new_diag = std::make_unique<
57 diag_vec.push_back(std::move(new_diag));
65 std::unique_ptr<cpu_temperature_diagnostics::CpuTemperatureDiagnostic>>&
68 for (
auto& diagnostic : diag_vec)
74 void configure_diagnostics(
77 std::unique_ptr<cpu_temperature_diagnostics::CpuTemperatureDiagnostic>>&
80 if (
int max_temp_override;
81 node_handle.
getParam(
"max_temp_override", max_temp_override))
84 std::to_string(max_temp_override));
85 for (
auto& diag : diag_vec)
87 diag->max_temp_override(max_temp_override);
91 if (
int critical_temp_override;
92 node_handle.
getParam(
"critical_temp_override", critical_temp_override))
95 std::to_string(critical_temp_override));
96 for (
auto& diag : diag_vec)
98 diag->critical_temp_override(critical_temp_override);
104 int main(
int argc,
char* argv[])
106 sensors_init(
nullptr);
107 ros::init(argc, argv,
"sensors_diagnostics");
111 if (!node_handle.
getParam(
"prefix", prefix))
113 std::string err =
"prefix parameter is missing";
118 auto diag_vec = create_diagnostics(prefix);
119 configure_diagnostics(node_handle, diag_vec);
Timer createTimer(Rate r, Handler h, Obj o, bool oneshot=false, bool autostart=true) const
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
bool getParam(const std::string &key, std::string &s) const
#define ROS_WARN_STREAM(args)
int main(int argc, char *argv[])
#define ROS_ERROR_STREAM(args)
std::vector< SensorChip > get_chips_with_prefix(const std::string &name)