blob: 9f441df5707bcf3039255ae519742371fb748b74 [file] [log] [blame]
Yuan Li445efe32019-06-14 22:58:32 +08001#pragma once
Ed Tanous18b61862025-01-30 10:56:28 -08002#include "Thresholds.hpp"
3
4#include <boost/asio/io_context.hpp>
Ed Tanous9b4a20e2022-09-06 08:47:11 -07005#include <boost/asio/steady_timer.hpp>
Ed Tanous18b61862025-01-30 10:56:28 -08006#include <sdbusplus/asio/connection.hpp>
7#include <sdbusplus/asio/object_server.hpp>
Ed Tanous8a57ec02020-10-09 12:46:52 -07008#include <sensor.hpp>
James Feist38fb5982020-05-28 10:09:54 -07009
Ed Tanous18b61862025-01-30 10:56:28 -080010#include <cstdint>
Patrick Venturefd6ba732019-10-31 14:27:39 -070011#include <memory>
12#include <string>
Yuan Li445efe32019-06-14 22:58:32 +080013#include <vector>
14
15struct MCUTempSensor : public Sensor
16{
17 MCUTempSensor(std::shared_ptr<sdbusplus::asio::connection>& conn,
Ed Tanous1f978632023-02-28 18:16:39 -080018 boost::asio::io_context& io, const std::string& name,
Yuan Li445efe32019-06-14 22:58:32 +080019 const std::string& sensorConfiguration,
20 sdbusplus::asio::object_server& objectServer,
Ed Tanous2049bd22022-07-09 07:20:26 -070021 std::vector<thresholds::Threshold>&& thresholdData,
Yuan Li445efe32019-06-14 22:58:32 +080022 uint8_t busId, uint8_t mcuAddress, uint8_t tempReg);
Ed Tanous8a57ec02020-10-09 12:46:52 -070023 ~MCUTempSensor() override;
Yuan Li445efe32019-06-14 22:58:32 +080024
Ed Tanous201a1012024-04-03 18:07:28 -070025 void checkThresholds() override;
26 void read();
27 void init();
Yuan Li445efe32019-06-14 22:58:32 +080028
29 uint8_t busId;
30 uint8_t mcuAddress;
31 uint8_t tempReg;
32
33 private:
Saitwal, Meghanf1169f72023-04-23 05:14:14 +000034 int getMCURegsInfoWord(uint8_t regs, int32_t* pu32data) const;
Yuan Li445efe32019-06-14 22:58:32 +080035 sdbusplus::asio::object_server& objectServer;
Ed Tanous9b4a20e2022-09-06 08:47:11 -070036 boost::asio::steady_timer waitTimer;
Yuan Li445efe32019-06-14 22:58:32 +080037};