/* * SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & * AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include "MctpRequester.hpp" #include "NvidiaDeviceDiscovery.hpp" #include "NvidiaGpuSensor.hpp" #include #include #include #include #include #include #include #include class SmaDevice { public: SmaDevice(const SensorConfigs& configs, const std::string& name, const std::string& path, const std::shared_ptr& conn, uint8_t eid, boost::asio::io_context& io, mctp::MctpRequester& mctpRequester, sdbusplus::asio::object_server& objectServer); const std::string& getPath() const { return path; } private: void makeSensors(); void read(); uint8_t eid{}; std::chrono::milliseconds sensorPollMs; boost::asio::steady_timer waitTimer; mctp::MctpRequester& mctpRequester; std::shared_ptr conn; sdbusplus::asio::object_server& objectServer; std::shared_ptr tempSensor; SensorConfigs configs; std::string name; std::string path; };