Added getPowerInfo functionality
This commit is contained in:
parent
ae3cc190a7
commit
c1b493af18
@ -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;
|
||||||
|
@ -22,7 +22,8 @@ class SAB
|
|||||||
ScreenConfig getScreenConfig() const;
|
ScreenConfig getScreenConfig() const;
|
||||||
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;
|
||||||
@ -34,8 +35,7 @@ class SAB
|
|||||||
|
|
||||||
RTC_DS3231 _rtc;
|
RTC_DS3231 _rtc;
|
||||||
RtcManager _rtcManager;
|
RtcManager _rtcManager;
|
||||||
|
|
||||||
SDClass _sdCard;
|
|
||||||
SDCardManager _sdCardManager;
|
SDCardManager _sdCardManager;
|
||||||
|
|
||||||
unsigned char _error;
|
unsigned char _error;
|
||||||
|
Loading…
Reference in New Issue
Block a user