Commit cbe4ba6c authored by Patrick José Pereira's avatar Patrick José Pereira Committed by Jacob Walser

Add new Fact with current consumption in Watts

Signed-off-by: 's avatarPatrick José Pereira <patrickelectric@gmail.com>
parent 4ed2e7e2
...@@ -39,5 +39,12 @@ ...@@ -39,5 +39,12 @@
"shortDescription": "Cell Count", "shortDescription": "Cell Count",
"type": "int32", "type": "int32",
"decimalPlaces": 0 "decimalPlaces": 0
},
{
"name": "instantPower",
"shortDescription": "Watts",
"type": "float",
"decimalPlaces": 2,
"units": "W"
} }
] ]
...@@ -1032,6 +1032,8 @@ void Vehicle::_handleSysStatus(mavlink_message_t& message) ...@@ -1032,6 +1032,8 @@ void Vehicle::_handleSysStatus(mavlink_message_t& message)
_batteryFactGroup.voltage()->setRawValue(VehicleBatteryFactGroup::_voltageUnavailable); _batteryFactGroup.voltage()->setRawValue(VehicleBatteryFactGroup::_voltageUnavailable);
} else { } else {
_batteryFactGroup.voltage()->setRawValue((double)sysStatus.voltage_battery / 1000.0); _batteryFactGroup.voltage()->setRawValue((double)sysStatus.voltage_battery / 1000.0);
// current_battery is 10 mA and voltage_battery is 1mV. (10/1e3 times 1/1e3 = 1/1e5)
_batteryFactGroup.instantPower()->setRawValue((float)(sysStatus.current_battery*sysStatus.voltage_battery)/(100000.0));
} }
_batteryFactGroup.percentRemaining()->setRawValue(sysStatus.battery_remaining); _batteryFactGroup.percentRemaining()->setRawValue(sysStatus.battery_remaining);
...@@ -2935,6 +2937,7 @@ const char* VehicleBatteryFactGroup::_mahConsumedFactName = "mah ...@@ -2935,6 +2937,7 @@ const char* VehicleBatteryFactGroup::_mahConsumedFactName = "mah
const char* VehicleBatteryFactGroup::_currentFactName = "current"; const char* VehicleBatteryFactGroup::_currentFactName = "current";
const char* VehicleBatteryFactGroup::_temperatureFactName = "temperature"; const char* VehicleBatteryFactGroup::_temperatureFactName = "temperature";
const char* VehicleBatteryFactGroup::_cellCountFactName = "cellCount"; const char* VehicleBatteryFactGroup::_cellCountFactName = "cellCount";
const char* VehicleBatteryFactGroup::_instantPowerFactName = "instantPower";
const char* VehicleBatteryFactGroup::_settingsGroup = "Vehicle.battery"; const char* VehicleBatteryFactGroup::_settingsGroup = "Vehicle.battery";
...@@ -2944,6 +2947,7 @@ const int VehicleBatteryFactGroup::_mahConsumedUnavailable = -1; ...@@ -2944,6 +2947,7 @@ const int VehicleBatteryFactGroup::_mahConsumedUnavailable = -1;
const int VehicleBatteryFactGroup::_currentUnavailable = -1; const int VehicleBatteryFactGroup::_currentUnavailable = -1;
const double VehicleBatteryFactGroup::_temperatureUnavailable = -1.0; const double VehicleBatteryFactGroup::_temperatureUnavailable = -1.0;
const int VehicleBatteryFactGroup::_cellCountUnavailable = -1.0; const int VehicleBatteryFactGroup::_cellCountUnavailable = -1.0;
const double VehicleBatteryFactGroup::_instantPowerUnavailable = -1.0;
VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent) VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent)
: FactGroup(1000, ":/json/Vehicle/BatteryFact.json", parent) : FactGroup(1000, ":/json/Vehicle/BatteryFact.json", parent)
...@@ -2953,6 +2957,7 @@ VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent) ...@@ -2953,6 +2957,7 @@ VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent)
, _currentFact (0, _currentFactName, FactMetaData::valueTypeFloat) , _currentFact (0, _currentFactName, FactMetaData::valueTypeFloat)
, _temperatureFact (0, _temperatureFactName, FactMetaData::valueTypeDouble) , _temperatureFact (0, _temperatureFactName, FactMetaData::valueTypeDouble)
, _cellCountFact (0, _cellCountFactName, FactMetaData::valueTypeInt32) , _cellCountFact (0, _cellCountFactName, FactMetaData::valueTypeInt32)
, _instantPowerFact (0, _instantPowerFactName, FactMetaData::valueTypeFloat)
{ {
_addFact(&_voltageFact, _voltageFactName); _addFact(&_voltageFact, _voltageFactName);
_addFact(&_percentRemainingFact, _percentRemainingFactName); _addFact(&_percentRemainingFact, _percentRemainingFactName);
...@@ -2960,6 +2965,7 @@ VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent) ...@@ -2960,6 +2965,7 @@ VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent)
_addFact(&_currentFact, _currentFactName); _addFact(&_currentFact, _currentFactName);
_addFact(&_temperatureFact, _temperatureFactName); _addFact(&_temperatureFact, _temperatureFactName);
_addFact(&_cellCountFact, _cellCountFactName); _addFact(&_cellCountFact, _cellCountFactName);
_addFact(&_instantPowerFact, _instantPowerFactName);
// Start out as not available // Start out as not available
_voltageFact.setRawValue (_voltageUnavailable); _voltageFact.setRawValue (_voltageUnavailable);
...@@ -2968,6 +2974,7 @@ VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent) ...@@ -2968,6 +2974,7 @@ VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent)
_currentFact.setRawValue (_currentUnavailable); _currentFact.setRawValue (_currentUnavailable);
_temperatureFact.setRawValue (_temperatureUnavailable); _temperatureFact.setRawValue (_temperatureUnavailable);
_cellCountFact.setRawValue (_cellCountUnavailable); _cellCountFact.setRawValue (_cellCountUnavailable);
_instantPowerFact.setRawValue (_instantPowerUnavailable);
} }
const char* VehicleWindFactGroup::_directionFactName = "direction"; const char* VehicleWindFactGroup::_directionFactName = "direction";
......
...@@ -156,6 +156,7 @@ public: ...@@ -156,6 +156,7 @@ public:
Q_PROPERTY(Fact* current READ current CONSTANT) Q_PROPERTY(Fact* current READ current CONSTANT)
Q_PROPERTY(Fact* temperature READ temperature CONSTANT) Q_PROPERTY(Fact* temperature READ temperature CONSTANT)
Q_PROPERTY(Fact* cellCount READ cellCount CONSTANT) Q_PROPERTY(Fact* cellCount READ cellCount CONSTANT)
Q_PROPERTY(Fact* instantPower READ instantPower CONSTANT)
Fact* voltage (void) { return &_voltageFact; } Fact* voltage (void) { return &_voltageFact; }
Fact* percentRemaining (void) { return &_percentRemainingFact; } Fact* percentRemaining (void) { return &_percentRemainingFact; }
...@@ -163,6 +164,7 @@ public: ...@@ -163,6 +164,7 @@ public:
Fact* current (void) { return &_currentFact; } Fact* current (void) { return &_currentFact; }
Fact* temperature (void) { return &_temperatureFact; } Fact* temperature (void) { return &_temperatureFact; }
Fact* cellCount (void) { return &_cellCountFact; } Fact* cellCount (void) { return &_cellCountFact; }
Fact* instantPower (void) { return &_instantPowerFact; }
static const char* _voltageFactName; static const char* _voltageFactName;
...@@ -171,6 +173,7 @@ public: ...@@ -171,6 +173,7 @@ public:
static const char* _currentFactName; static const char* _currentFactName;
static const char* _temperatureFactName; static const char* _temperatureFactName;
static const char* _cellCountFactName; static const char* _cellCountFactName;
static const char* _instantPowerFactName;
static const char* _settingsGroup; static const char* _settingsGroup;
...@@ -180,6 +183,7 @@ public: ...@@ -180,6 +183,7 @@ public:
static const int _currentUnavailable; static const int _currentUnavailable;
static const double _temperatureUnavailable; static const double _temperatureUnavailable;
static const int _cellCountUnavailable; static const int _cellCountUnavailable;
static const double _instantPowerUnavailable;
private: private:
Fact _voltageFact; Fact _voltageFact;
...@@ -188,6 +192,7 @@ private: ...@@ -188,6 +192,7 @@ private:
Fact _currentFact; Fact _currentFact;
Fact _temperatureFact; Fact _temperatureFact;
Fact _cellCountFact; Fact _cellCountFact;
Fact _instantPowerFact;
}; };
class VehicleTemperatureFactGroup : public FactGroup class VehicleTemperatureFactGroup : public FactGroup
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment