1 #pragma once 2 #include "Thresholds.hpp" 3 4 #include <boost/asio/io_context.hpp> 5 #include <boost/asio/steady_timer.hpp> 6 #include <sdbusplus/asio/connection.hpp> 7 #include <sdbusplus/asio/object_server.hpp> 8 #include <sensor.hpp> 9 10 #include <cstdint> 11 #include <memory> 12 #include <string> 13 #include <vector> 14 15 struct MCUTempSensor : public Sensor 16 { 17 MCUTempSensor(std::shared_ptr<sdbusplus::asio::connection>& conn, 18 boost::asio::io_context& io, const std::string& name, 19 const std::string& sensorConfiguration, 20 sdbusplus::asio::object_server& objectServer, 21 std::vector<thresholds::Threshold>&& thresholdData, 22 uint8_t busId, uint8_t mcuAddress, uint8_t tempReg); 23 ~MCUTempSensor() override; 24 25 void checkThresholds() override; 26 void read(); 27 void init(); 28 29 uint8_t busId; 30 uint8_t mcuAddress; 31 uint8_t tempReg; 32 33 private: 34 int getMCURegsInfoWord(uint8_t regs, int32_t* pu32data) const; 35 sdbusplus::asio::object_server& objectServer; 36 boost::asio::steady_timer waitTimer; 37 }; 38