| #pragma once |
| |
| #include "include/common_utility.hpp" |
| |
| #include <fcntl.h> |
| #include <linux/i2c-dev.h> |
| #include <sys/ioctl.h> |
| #include <unistd.h> |
| |
| namespace max34451 |
| { |
| |
| /** |
| * @brief Parses the status byte and returns a string representation. |
| * |
| * @param statusByte The status byte to be parsed. |
| * @return std::string The string representation of the status byte. |
| */ |
| std::string parserStatusByte(uint8_t statusByte); |
| |
| /** |
| * @brief Parses the status word and returns a string representation. |
| * |
| * @param statusWord The status word to be parsed. |
| * @return std::string The string representation of the status word. |
| */ |
| std::string parserStatusWord(uint16_t statusWord); |
| |
| /** |
| * @brief Parses the status Vout and returns a string representation. |
| * |
| * @param statusVout The status Vout to be parsed. |
| * @return std::string The string representation of the status Vout. |
| */ |
| std::string parserStatusVout(uint8_t statusVout); |
| |
| /** |
| * @brief Parses the status Iout and returns a string representation. |
| * |
| * @param statusIout The status Iout to be parsed. |
| * @return std::string The string representation of the status Iout. |
| */ |
| std::string parserStatusIout(uint8_t statusIout); |
| |
| /** |
| * @brief Parses the status Input and returns a string representation. |
| * |
| * @param statusInput The status Input to be parsed. |
| * @return std::string The string representation of the status Input. |
| */ |
| std::string parserStatusInput(uint8_t statusInput); |
| |
| /** |
| * @brief Parses the status Temperature and returns a string representation. |
| * |
| * @param statusTemperature The status Temperature to be parsed. |
| * @return std::string The string representation of the status Temperature. |
| */ |
| std::string parserStatusTemperature(uint8_t statusTemperature); |
| |
| /** |
| * @brief Parses the status Cml and returns a string representation. |
| * |
| * @param statusCml The status Cml to be parsed. |
| * @return std::string The string representation of the status Cml. |
| */ |
| std::string parserStatusCml(uint8_t statusCml); |
| |
| /** |
| * @brief Loads the specified page on the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @param page The page number. |
| */ |
| void loadPage(uint8_t bus, uint8_t devAddr, uint8_t page); |
| |
| /** |
| * @brief Retrieves the status byte from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint8_t The status byte. |
| */ |
| uint8_t getStatusByte(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the status word from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint16_t The status word. |
| */ |
| uint16_t getStatusWord(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the status Vout from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint8_t The status Vout. |
| */ |
| uint8_t getStatusVout(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the status Iout from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint8_t The status Iout. |
| */ |
| uint8_t getStatusIout(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the status Input from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint8_t The status Input. |
| */ |
| uint8_t getStatusInput(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the status Temperature from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint8_t The status Temperature. |
| */ |
| uint8_t getStatusTemperature(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the status Cml from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint8_t The status Cml. |
| */ |
| uint8_t getStatusCml(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the On/Off configuration from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint8_t The On/Off configuration. |
| */ |
| uint8_t getOnOffConfig(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Sets the write protect value on the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @param value The write protect value. |
| */ |
| void setWriteProtect(uint8_t bus, uint8_t devAddr, uint8_t value); |
| |
| /** |
| * @brief Reads the Vin value from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint16_t The Vin value. |
| */ |
| uint16_t readVin(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Reads the Iin value from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint16_t The Iin value. |
| */ |
| uint16_t readIin(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Reads the Vout value from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint16_t The Vout value. |
| */ |
| uint16_t readVout(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Reads the Iout value from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint16_t The Iout value. |
| */ |
| uint16_t readIout(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Reads the Temperature value from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint16_t The Temperature value. |
| */ |
| uint16_t readTemperature(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the Vout maximum value from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint16_t The Vout maximum value. |
| */ |
| uint16_t getVoutMax(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the Vout overvoltage fault limit from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint16_t The Vout overvoltage fault limit. |
| */ |
| uint16_t getVoutOvFaultLimit(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the Iout overcurrent fault limit from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint16_t The Iout overcurrent fault limit. |
| */ |
| uint16_t getIoutOcFaultLimit(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Sets the Iout overcurrent fault limit on the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @param value The Iout overcurrent fault limit. |
| */ |
| void setIoutOcFaultLimit(uint8_t bus, uint8_t devAddr, uint16_t value); |
| |
| /** |
| * @brief Retrieves the overtemperature fault limit from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint16_t The overtemperature fault limit. |
| */ |
| uint16_t getOtFaultLimit(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the PMBus revision from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @return uint8_t The PMBus revision. |
| */ |
| uint8_t getPmbusRevision(uint8_t bus, uint8_t devAddr); |
| |
| /** |
| * @brief Retrieves the manufacturer ID from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @param returnByte The return byte. |
| * @return std::string The manufacturer ID. |
| */ |
| std::string getMfrId(uint8_t bus, uint8_t devAddr, uint8_t returnByte); |
| |
| /** |
| * @brief Retrieves the manufacturer model from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @param returnByte The return byte. |
| * @return std::string The manufacturer model. |
| */ |
| std::string getMfrModel(uint8_t bus, uint8_t devAddr, uint8_t returnByte); |
| |
| /** |
| * @brief Retrieves the manufacturer revision from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @param returnByte The return byte. |
| * @return std::string The manufacturer revision. |
| */ |
| std::string getMfrRevision(uint8_t bus, uint8_t devAddr, uint8_t returnByte); |
| |
| /** |
| * @brief Retrieves the IC device ID from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @param returnByte The return byte. |
| * @return std::string The IC device ID. |
| */ |
| std::string getIcDeviceId(uint8_t bus, uint8_t devAddr, uint8_t returnByte); |
| |
| /** |
| * @brief Retrieves the IC device revision from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @param returnByte The return byte. |
| * @return std::string The IC device revision. |
| */ |
| std::string getIcDeviceRev(uint8_t bus, uint8_t devAddr, uint8_t returnByte); |
| |
| /** |
| * @brief Retrieves the manufacturer date from the device. |
| * |
| * @param bus The bus number. |
| * @param devAddr The device address. |
| * @param returnByte The return byte. |
| * @return std::string The manufacturer date. |
| */ |
| std::string getMfrDate(uint8_t bus, uint8_t devAddr, uint8_t returnByte); |
| |
| /** |
| * @brief Transfers a linear 11-bit value to a double. |
| * |
| * @param word The linear 11-bit value. |
| * @return double The transferred value. |
| */ |
| double transferLinear11(uint16_t word); |
| |
| /** |
| * @brief Transfers a linear 16-bit value to a double. |
| * |
| * @param Y The linear 16-bit value. |
| * @return double The transferred value. |
| */ |
| double transferLinear16(uint16_t y); |
| |
| /** |
| * @brief Transfers a direct data format value to a double. |
| * |
| * @param m The m value. |
| * @param Y The Y value. |
| * @param R The R value. |
| * @param b The b value. |
| * @return double The transferred value. |
| */ |
| double transferDirectDataFormat(int m, int y, int r, int b); |
| |
| /** |
| * @brief Transfers a direct value to a double. |
| * |
| * @param Y The Y value. |
| * @param factor The factor value. |
| * @return double The transferred value. |
| */ |
| double transferDirectValue(int y, double factor); |
| |
| /** |
| * @brief Transfers an ASCII array to a string. |
| * |
| * @param asciiArray The ASCII array. |
| * @return std::string The transferred string. |
| */ |
| std::string transferAscii(const std::vector<uint8_t>& asciiArray); |
| |
| /** |
| * @brief Binds an I2C device with the specified name, bus number, and chip |
| * address. |
| * |
| * @param name The name of the I2C device. |
| * @param i2cbus The bus number. |
| * @param chipaddress The chip address. |
| */ |
| void bindI2cDevice(const std::string& name, int i2cbus, int chipaddress); |
| |
| /** |
| * @brief Unbinds an I2C device with the specified bus number and chip address. |
| * |
| * @param i2cbus The bus number. |
| * @param chipaddress The chip address. |
| */ |
| void unbindI2cDevice(int i2cbus, int chipaddress); |
| |
| } // namespace max34451 |