Added getPowerInfo functionality
This commit is contained in:
parent
ae3cc190a7
commit
c1b493af18
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user