Updated code to use the PowerManager class
This commit is contained in:
parent
730460bd99
commit
6ffe25ec3b
@ -97,6 +97,11 @@ TaskSchedulerManager& SAB::getTaskSchedulerManager()
|
||||
return _taskSchedulerManager;
|
||||
}
|
||||
|
||||
PowerManager& SAB::getPowerManager()
|
||||
{
|
||||
return _powerManager;
|
||||
}
|
||||
|
||||
ScreenConfig SAB::getScreenConfig() const
|
||||
{
|
||||
return _screenConfig;
|
||||
@ -112,42 +117,6 @@ 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);
|
||||
batteryMeasures += temp;
|
||||
}
|
||||
|
||||
batteryMeasures /= nbOfMeasures;
|
||||
|
||||
if(batteryMeasures <= USB_THRESHOLD)
|
||||
{
|
||||
p.powerType = USB;
|
||||
p.level = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
p.powerType = BATTERY;
|
||||
checkLevel = ((double)(batteryMeasures-BATT_EMPTY)*100.0/(double)BATT_DIFF);
|
||||
|
||||
if(checkLevel > 100)
|
||||
p.level = 100;
|
||||
else if (checkLevel < 0)
|
||||
p.level = 0;
|
||||
else
|
||||
p.level = checkLevel;
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
const char *SAB::getSoftVersion() const
|
||||
{
|
||||
return SOFT_VERSION;
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "WEBServerManager.h"
|
||||
#include "IOManager.h"
|
||||
#include "TaskSchedulerManager.h"
|
||||
#include "PowerManager.h"
|
||||
#include "versions.h"
|
||||
#include <Adafruit_SSD1306.h>
|
||||
#include <RTClib.h>
|
||||
@ -34,11 +35,10 @@ class SAB
|
||||
WEBServerManager& getWebServerManager();
|
||||
IOManager& getIoManager();
|
||||
TaskSchedulerManager& getTaskSchedulerManager();
|
||||
PowerManager& getPowerManager();
|
||||
ScreenConfig getScreenConfig() const;
|
||||
PinMapping getPinConfig() const;
|
||||
SDCardConfig getSdCardConfig() const;
|
||||
|
||||
PowerInfo getPowerInfo(const unsigned char nbOfMeasures = 5) const;
|
||||
const char *getSoftVersion() const;
|
||||
unsigned char getError() const;
|
||||
private:
|
||||
@ -57,6 +57,7 @@ class SAB
|
||||
PCF8574 _pcf;
|
||||
IOManager _ioManager;
|
||||
TaskSchedulerManager _taskSchedulerManager;
|
||||
PowerManager _powerManager;
|
||||
|
||||
uint8_t _error;
|
||||
};
|
||||
|
@ -12,7 +12,7 @@ SAB sab;
|
||||
|
||||
unsigned long currentMs = 0, buttonMs = 0;
|
||||
volatile boolean ioStateChange(false);
|
||||
View1Packet v1p = {sab.getRtcManager().getDateTime(), sab.getSdCardManager().getSize(GBYTE), sab.getPowerInfo(),0, sab.getSoftVersion(), &sab};
|
||||
View1Packet v1p = {sab.getRtcManager().getDateTime(), sab.getSdCardManager().getSize(GBYTE), sab.getPowerManager().getPowerInfo(),0, sab.getSoftVersion(), &sab};
|
||||
ViewAPPacket vap = {sab.getConnectivityManager().softAPmacAddress(), sab.getConnectivityManager().softAPSSID(), sab.getConnectivityManager().softAPIP(), sab.getConnectivityManager().softAPgetStationNum()};
|
||||
ViewSTAPacket vstap = {sab.getConnectivityManager().macAddress(), sab.getConnectivityManager().localIP(), sab.getConnectivityManager().RSSI()};
|
||||
ViewIoInfoPacket vio = {{0},{0}};
|
||||
|
@ -47,8 +47,6 @@ typedef enum { OR_0 = 2, OR_90 = 3, OR_180 = 0, OR_270 = 1 } Orientation;
|
||||
|
||||
typedef enum { BIT = 0, BYTE, KBIT, KBYTE, MBIT, MBYTE, GBIT, GBYTE } SizeUnit;
|
||||
|
||||
typedef enum { BATTERY = 0, USB } PowerType;
|
||||
|
||||
//Data structure for the view handling
|
||||
typedef struct viewLink{
|
||||
boolean (*viewLogicFunction)(Adafruit_SSD1306&, void*);
|
||||
@ -57,13 +55,6 @@ typedef struct viewLink{
|
||||
struct viewLink *next;
|
||||
} ViewLink, *ViewLinkedList;
|
||||
|
||||
//Data structure for the battery info
|
||||
typedef struct powerInfo
|
||||
{
|
||||
PowerType powerType;
|
||||
unsigned char level;
|
||||
}PowerInfo;
|
||||
|
||||
char *addChar(char *pointer, const char character);
|
||||
|
||||
char *dateTimeFormater(char *pointer, const uint8_t value, const char character);
|
||||
|
@ -26,7 +26,7 @@ boolean task_batt_sensing(void *pData)
|
||||
{
|
||||
View1Packet *p = (View1Packet *) pData;
|
||||
Serial.println(F("BATT SENSING..."));
|
||||
p->powerInfo = p->sab->getPowerInfo();
|
||||
p->powerInfo = p->sab->getPowerManager().getPowerInfo();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -13,5 +13,6 @@
|
||||
#define SOFT_VERSION "1.1.2" //Fixed a big memory leak :( shame on me...
|
||||
#define SOFT_VERSION "1.1.3" //TaskSchedulerManager added millis rollover
|
||||
#define SOFT_VERSION "1.1.4" //Cleaned AP and STA wifi start
|
||||
#define SOFT_VERSION "1.2.0" //Added new PowerManager class
|
||||
|
||||
#endif //VERSIONS_H
|
||||
|
@ -7,7 +7,7 @@ boolean view_1(Adafruit_SSD1306 &display, void *pData)
|
||||
|
||||
switch(p->powerInfo.powerType)
|
||||
{
|
||||
case USB:
|
||||
case PowerManager::USB:
|
||||
sprintf(power_str,"USB");
|
||||
break;
|
||||
default:
|
||||
|
@ -7,7 +7,7 @@ typedef struct view1Packet
|
||||
{
|
||||
DateTime dateTime;
|
||||
float sdCardSize;
|
||||
PowerInfo powerInfo;
|
||||
PowerManager::PowerInfo powerInfo;
|
||||
unsigned char nbViews;
|
||||
const char *version;
|
||||
SAB *sab;
|
||||
|
@ -198,9 +198,9 @@ boolean powerInfoApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, voi
|
||||
{
|
||||
SAB *p = (SAB *)pData;
|
||||
char buffer[300];
|
||||
PowerInfo pi = p->getPowerInfo();
|
||||
PowerManager::PowerInfo pi = p->getPowerManager().getPowerInfo();
|
||||
|
||||
sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"power type\" : \"%s\", \"level\" : \"%u\", \"unit\" : \"%%\" }", pi.powerType == USB ? "USB" : "BAT", pi.level);
|
||||
sprintf(buffer,"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{ \"status\" : \"ok\", \"power type\" : \"%s\", \"level\" : \"%u\", \"unit\" : \"%%\" }", pi.powerType == PowerManager::USB ? "USB" : "BAT", pi.level);
|
||||
|
||||
wc->print(buffer);
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user