#include "AP_BattMonitor_SMBus_Rotoye.h" #include // Specific to Rotoye Batmon #define BATTMONITOR_SMBUS_TEMP_EXT 0x07 // return the maximum of the internal and external temperature sensors void AP_BattMonitor_SMBus_Rotoye::read_temp(void) { uint16_t t_int, t_ext; /* Both internal and external values will always be sent by Batmon. If no external thermistor is used, a zero-value is sent. */ if (read_word(BATTMONITOR_SMBUS_TEMP, t_int) && read_word(BATTMONITOR_SMBUS_TEMP_EXT, t_ext)) { uint16_t t; _state.temperature_time = AP_HAL::millis(); t = ((t_ext > t_int) ? t_ext : t_int); _state.temperature = KELVIN_TO_C(0.1f * (float)t); } }