1 #pragma once
2 
3 #include <boost/asio/io_context.hpp>
4 #include <sensor.hpp>
5 
6 class NVMeSensor : public Sensor
7 {
8   public:
9     static constexpr const char* sensorType = "NVME1000";
10 
11     NVMeSensor(sdbusplus::asio::object_server& objectServer,
12                boost::asio::io_context& io,
13                std::shared_ptr<sdbusplus::asio::connection>& conn,
14                const std::string& sensorName,
15                std::vector<thresholds::Threshold>&& thresholds,
16                const std::string& sensorConfiguration, int busNumber,
17                uint8_t slaveAddr);
18     ~NVMeSensor() override;
19 
20     NVMeSensor& operator=(const NVMeSensor& other) = delete;
21 
22     bool sample();
23 
24     const int bus;
25     const uint8_t address;
26 
27   private:
28     const unsigned int scanDelayTicks = 5 * 60;
29     sdbusplus::asio::object_server& objServer;
30     unsigned int scanDelay{0};
31 
32     void checkThresholds() override;
33 };
34