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"
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);
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());
if(!_rtc.begin()) _error |= RTC_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);
delay(200);
@ -21,7 +21,7 @@ SAB::SAB(const PinMapping pinConfig, const ScreenConfig screenConfig, const SDCa
Wire.begin(_pinConfig.getI2C_sda(), _pinConfig.getI2C_scl());
if(!_rtc.begin()) _error |= RTC_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()
@ -54,6 +54,43 @@ SDCardConfig SAB::getSdCardConfig() const
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
{
return _error;

View File

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