Added getPowerInfo functionality

This commit is contained in:
anschrammh 2019-03-10 19:22:45 +01:00
parent ae3cc190a7
commit c1b493af18
2 changed files with 44 additions and 7 deletions

View File

@ -1,6 +1,6 @@
#include "SAB.h" #include "SAB.h"
SAB::SAB() : _screenConfig(128, 64, 0x3C), _sdCardConfig(SPI_FULL_SPEED), _display(_screenConfig.getWidth(), _screenConfig.getHeight(), &Wire), _screenManager(_display), _rtc(), _rtcManager(_rtc), _sdCard(), _sdCardManager(_sdCard), _error(0) SAB::SAB() : _screenConfig(128, 64, 0x3C), _sdCardConfig(SPI_FULL_SPEED), _display(_screenConfig.getWidth(), _screenConfig.getHeight(), &Wire), _screenManager(_display), _rtc(), _rtcManager(_rtc), _sdCardManager(), _error(0)
{ {
Serial.begin(9600); Serial.begin(9600);
delay(200); delay(200);
@ -9,10 +9,10 @@ SAB::SAB() : _screenConfig(128, 64, 0x3C), _sdCardConfig(SPI_FULL_SPEED), _displ
Wire.begin(_pinConfig.getI2C_sda(), _pinConfig.getI2C_scl()); Wire.begin(_pinConfig.getI2C_sda(), _pinConfig.getI2C_scl());
if(!_rtc.begin()) _error |= RTC_BEGIN_ERR; if(!_rtc.begin()) _error |= RTC_BEGIN_ERR;
if(!_display.begin(SSD1306_SWITCHCAPVCC, _screenConfig.getAddress())){ _error |= DISP_BEGIN_ERR; } if(!_display.begin(SSD1306_SWITCHCAPVCC, _screenConfig.getAddress())){ _error |= DISP_BEGIN_ERR; }
if(!_sdCard.begin(_sdCardConfig.getSPISpeed(), _pinConfig.getSPI_sdCard_cs())){ _error |= SDCARD_INIT_ERR; } if(!_sdCardManager.begin(_sdCardConfig.getSPISpeed(), _pinConfig.getSPI_sdCard_cs())){ _error |= SDCARD_INIT_ERR; }
} }
SAB::SAB(const PinMapping pinConfig, const ScreenConfig screenConfig, const SDCardConfig sdCardConfig) : _pinConfig(pinConfig), _screenConfig(screenConfig), _sdCardConfig(sdCardConfig), _display(_screenConfig.getWidth(), _screenConfig.getHeight(), &Wire), _screenManager(_display), _rtc(), _rtcManager(_rtc), _sdCard(),_sdCardManager(_sdCard), _error(0) SAB::SAB(const PinMapping pinConfig, const ScreenConfig screenConfig, const SDCardConfig sdCardConfig) : _pinConfig(pinConfig), _screenConfig(screenConfig), _sdCardConfig(sdCardConfig), _display(_screenConfig.getWidth(), _screenConfig.getHeight(), &Wire), _screenManager(_display), _rtc(), _rtcManager(_rtc), _sdCardManager(), _error(0)
{ {
Serial.begin(9600); Serial.begin(9600);
delay(200); delay(200);
@ -21,7 +21,7 @@ SAB::SAB(const PinMapping pinConfig, const ScreenConfig screenConfig, const SDCa
Wire.begin(_pinConfig.getI2C_sda(), _pinConfig.getI2C_scl()); Wire.begin(_pinConfig.getI2C_sda(), _pinConfig.getI2C_scl());
if(!_rtc.begin()) _error |= RTC_BEGIN_ERR; if(!_rtc.begin()) _error |= RTC_BEGIN_ERR;
if(!_display.begin(SSD1306_SWITCHCAPVCC, _screenConfig.getAddress())) _error |= DISP_BEGIN_ERR; if(!_display.begin(SSD1306_SWITCHCAPVCC, _screenConfig.getAddress())) _error |= DISP_BEGIN_ERR;
if(!_sdCard.begin(_sdCardConfig.getSPISpeed(), _pinConfig.getSPI_sdCard_cs())){ _error |= SDCARD_INIT_ERR;} if(!_sdCardManager.begin(_sdCardConfig.getSPISpeed(), _pinConfig.getSPI_sdCard_cs())){ _error |= SDCARD_INIT_ERR;}
} }
ScreenManager& SAB::getScreenManager() ScreenManager& SAB::getScreenManager()
@ -54,6 +54,43 @@ SDCardConfig SAB::getSdCardConfig() const
return _sdCardConfig; return _sdCardConfig;
} }
PowerInfo SAB::getPowerInfo(const unsigned char nbOfMeasures) const
{
uint16_t batteryMeasures = 0, temp = 0;
unsigned char i = 0;
int checkLevel = 0;
PowerInfo p;
for(;i < nbOfMeasures;i++)
{
temp = analogRead(ADC);
Serial.println(temp);
batteryMeasures += temp;
}
batteryMeasures /= nbOfMeasures;
if(batteryMeasures <= USB_THRESHOLD)
{
p.powerType = USB;
p.level = 0;
}
else
{
p.powerType = BATTERY;
checkLevel = ((batteryMeasures-BATT_EMPTY)*100/BATT_DIFF);
if(checkLevel > 100)
p.level = 100;
else if (checkLevel < 0)
p.level = 0;
else
p.level = checkLevel;
}
return p;
}
unsigned char SAB::getError() const unsigned char SAB::getError() const
{ {
return _error; return _error;

View File

@ -23,6 +23,7 @@ class SAB
PinMapping getPinConfig() const; PinMapping getPinConfig() const;
SDCardConfig getSdCardConfig() const; SDCardConfig getSdCardConfig() const;
PowerInfo getPowerInfo(const unsigned char nbOfMeasures = 5) const;
unsigned char getError() const; unsigned char getError() const;
private: private:
const PinMapping _pinConfig; const PinMapping _pinConfig;
@ -35,7 +36,6 @@ class SAB
RTC_DS3231 _rtc; RTC_DS3231 _rtc;
RtcManager _rtcManager; RtcManager _rtcManager;
SDClass _sdCard;
SDCardManager _sdCardManager; SDCardManager _sdCardManager;
unsigned char _error; unsigned char _error;