You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.4 KiB
50 lines
1.4 KiB
#pragma once |
|
|
|
#include <AP_Generator/AP_Generator.h> |
|
|
|
#if HAL_GENERATOR_ENABLED |
|
|
|
#include "AP_BattMonitor.h" |
|
#include "AP_BattMonitor_Backend.h" |
|
|
|
// Sub class for generator electrical |
|
class AP_BattMonitor_Generator_Elec : public AP_BattMonitor_Backend |
|
{ |
|
public: |
|
|
|
// Inherit constructor |
|
using AP_BattMonitor_Backend::AP_BattMonitor_Backend; |
|
|
|
void init(void) override {}; |
|
|
|
// Read the battery voltage and current |
|
void read(void) override; |
|
|
|
bool has_current(void) const override; |
|
|
|
bool has_consumed_energy(void) const override; |
|
|
|
// Override backend update_failsafes. No point in failsafing twice so generator failsafes are only updated from the electrical instance of the generator drivers |
|
AP_BattMonitor::Failsafe update_failsafes() override; |
|
}; |
|
|
|
// Sub class for generator fuel |
|
class AP_BattMonitor_Generator_FuelLevel : public AP_BattMonitor_Backend |
|
{ |
|
public: |
|
|
|
// Inherit constructor |
|
using AP_BattMonitor_Backend::AP_BattMonitor_Backend; |
|
|
|
void init(void) override; |
|
|
|
// Read the fuel level |
|
void read(void) override; |
|
|
|
// This is where we tell the battery monitor 'we have current' if we want to report a fuel level remaining |
|
bool has_current(void) const override; |
|
|
|
// This is where we tell the battery monitor 'we have consummed energy' if we want to report a fuel level remaining |
|
bool has_consumed_energy(void) const override; |
|
}; |
|
#endif
|
|
|