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;
|
return _taskSchedulerManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PowerManager& SAB::getPowerManager()
|
||||||
|
{
|
||||||
|
return _powerManager;
|
||||||
|
}
|
||||||
|
|
||||||
ScreenConfig SAB::getScreenConfig() const
|
ScreenConfig SAB::getScreenConfig() const
|
||||||
{
|
{
|
||||||
return _screenConfig;
|
return _screenConfig;
|
||||||
@ -112,42 +117,6 @@ 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);
|
|
||||||
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
|
const char *SAB::getSoftVersion() const
|
||||||
{
|
{
|
||||||
return SOFT_VERSION;
|
return SOFT_VERSION;
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "WEBServerManager.h"
|
#include "WEBServerManager.h"
|
||||||
#include "IOManager.h"
|
#include "IOManager.h"
|
||||||
#include "TaskSchedulerManager.h"
|
#include "TaskSchedulerManager.h"
|
||||||
|
#include "PowerManager.h"
|
||||||
#include "versions.h"
|
#include "versions.h"
|
||||||
#include <Adafruit_SSD1306.h>
|
#include <Adafruit_SSD1306.h>
|
||||||
#include <RTClib.h>
|
#include <RTClib.h>
|
||||||
@ -34,11 +35,10 @@ class SAB
|
|||||||
WEBServerManager& getWebServerManager();
|
WEBServerManager& getWebServerManager();
|
||||||
IOManager& getIoManager();
|
IOManager& getIoManager();
|
||||||
TaskSchedulerManager& getTaskSchedulerManager();
|
TaskSchedulerManager& getTaskSchedulerManager();
|
||||||
|
PowerManager& getPowerManager();
|
||||||
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;
|
|
||||||
const char *getSoftVersion() const;
|
const char *getSoftVersion() const;
|
||||||
unsigned char getError() const;
|
unsigned char getError() const;
|
||||||
private:
|
private:
|
||||||
@ -57,6 +57,7 @@ class SAB
|
|||||||
PCF8574 _pcf;
|
PCF8574 _pcf;
|
||||||
IOManager _ioManager;
|
IOManager _ioManager;
|
||||||
TaskSchedulerManager _taskSchedulerManager;
|
TaskSchedulerManager _taskSchedulerManager;
|
||||||
|
PowerManager _powerManager;
|
||||||
|
|
||||||
uint8_t _error;
|
uint8_t _error;
|
||||||
};
|
};
|
||||||
|
@ -12,7 +12,7 @@ SAB sab;
|
|||||||
|
|
||||||
unsigned long currentMs = 0, buttonMs = 0;
|
unsigned long currentMs = 0, buttonMs = 0;
|
||||||
volatile boolean ioStateChange(false);
|
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()};
|
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()};
|
ViewSTAPacket vstap = {sab.getConnectivityManager().macAddress(), sab.getConnectivityManager().localIP(), sab.getConnectivityManager().RSSI()};
|
||||||
ViewIoInfoPacket vio = {{0},{0}};
|
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 { BIT = 0, BYTE, KBIT, KBYTE, MBIT, MBYTE, GBIT, GBYTE } SizeUnit;
|
||||||
|
|
||||||
typedef enum { BATTERY = 0, USB } PowerType;
|
|
||||||
|
|
||||||
//Data structure for the view handling
|
//Data structure for the view handling
|
||||||
typedef struct viewLink{
|
typedef struct viewLink{
|
||||||
boolean (*viewLogicFunction)(Adafruit_SSD1306&, void*);
|
boolean (*viewLogicFunction)(Adafruit_SSD1306&, void*);
|
||||||
@ -57,13 +55,6 @@ typedef struct viewLink{
|
|||||||
struct viewLink *next;
|
struct viewLink *next;
|
||||||
} ViewLink, *ViewLinkedList;
|
} 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 *addChar(char *pointer, const char character);
|
||||||
|
|
||||||
char *dateTimeFormater(char *pointer, const uint8_t value, 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;
|
View1Packet *p = (View1Packet *) pData;
|
||||||
Serial.println(F("BATT SENSING..."));
|
Serial.println(F("BATT SENSING..."));
|
||||||
p->powerInfo = p->sab->getPowerInfo();
|
p->powerInfo = p->sab->getPowerManager().getPowerInfo();
|
||||||
|
|
||||||
return true;
|
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.2" //Fixed a big memory leak :( shame on me...
|
||||||
#define SOFT_VERSION "1.1.3" //TaskSchedulerManager added millis rollover
|
#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.1.4" //Cleaned AP and STA wifi start
|
||||||
|
#define SOFT_VERSION "1.2.0" //Added new PowerManager class
|
||||||
|
|
||||||
#endif //VERSIONS_H
|
#endif //VERSIONS_H
|
||||||
|
@ -7,7 +7,7 @@ boolean view_1(Adafruit_SSD1306 &display, void *pData)
|
|||||||
|
|
||||||
switch(p->powerInfo.powerType)
|
switch(p->powerInfo.powerType)
|
||||||
{
|
{
|
||||||
case USB:
|
case PowerManager::USB:
|
||||||
sprintf(power_str,"USB");
|
sprintf(power_str,"USB");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -7,7 +7,7 @@ typedef struct view1Packet
|
|||||||
{
|
{
|
||||||
DateTime dateTime;
|
DateTime dateTime;
|
||||||
float sdCardSize;
|
float sdCardSize;
|
||||||
PowerInfo powerInfo;
|
PowerManager::PowerInfo powerInfo;
|
||||||
unsigned char nbViews;
|
unsigned char nbViews;
|
||||||
const char *version;
|
const char *version;
|
||||||
SAB *sab;
|
SAB *sab;
|
||||||
|
@ -198,9 +198,9 @@ boolean powerInfoApi(WEBServerManager::HttpRequestData &HRD, WiFiClient *wc, voi
|
|||||||
{
|
{
|
||||||
SAB *p = (SAB *)pData;
|
SAB *p = (SAB *)pData;
|
||||||
char buffer[300];
|
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);
|
wc->print(buffer);
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user