#include "SIM_SMBusDevice.h" #pragma once namespace SITL { class SMBusBattDevReg : public SMBusRegEnum { public: static const uint8_t TEMP = 0x08; // Temperature static const uint8_t VOLTAGE = 0x09; // Voltage static const uint8_t CURRENT = 0x0A; // Current static const uint8_t REMAINING_CAPACITY = 0x0F; // Remaining Capacity static const uint8_t FULL_CHARGE_CAPACITY = 0x10; // Full Charge Capacity (accounting for battery degradation) static const uint8_t CYCLE_COUNT = 0x17; // Cycle Count static const uint8_t DESIGN_CAPACITY = 0x18; // Design capacity (capacity when newly manufactured) static const uint8_t DESIGN_VOLTAGE = 0x19; // Design voltage static const uint8_t SPECIFICATION_INFO = 0x1A; // Specification Info static const uint8_t MANUFACTURE_DATE = 0x1B; // Manufacture date static const uint8_t SERIAL = 0x1C; // Serial Number static const uint8_t MANUFACTURE_NAME = 0x20; // Manufacture Name static const uint8_t DEVICE_NAME = 0x21; // Device Name static const uint8_t DEVICE_CHEMISTRY = 0x22; // Battery chemistry type static const uint8_t MANUFACTURE_DATA = 0x23; // Manufacture Data }; class SIM_BattMonitor_SMBus : public SMBusDevice { public: SIM_BattMonitor_SMBus(); virtual void update(const class Aircraft &aircraft) override; private: uint32_t last_update_ms; }; } // namespace SITL