update for active chargers

This commit is contained in:
Hendrik Schutter 2018-11-22 23:27:20 +01:00
parent c52ff17429
commit 591e5557ac
3 changed files with 61 additions and 13 deletions

View File

@ -10,6 +10,7 @@
charger::charger(const struct s_charger pCharger) { charger::charger(const struct s_charger pCharger) {
charger_settings = pCharger; charger_settings = pCharger;
active = false; active = false;
capacity = 0;
} }
charger::~charger() { charger::~charger() {
@ -32,17 +33,16 @@ double charger::getVoltage() {
} }
/* returns summed up charged capacity since charge start in mAh */ /* returns summed up charged capacity since charge start in mAh */
double charger::getCapacity() { unsigned int charger::getCapacity() {
//TODO return capacity;
return 1.1;
} }
void charger::setStartTime(struct time_t pTime){ void charger::setStartTime(struct time_t pTime) {
startTime = pTime; startTime = pTime;
} }
struct time_t charger::getStartTime(){ struct time_t charger::getStartTime() {
return startTime; return startTime;
} }
void charger::getInfo() { void charger::getInfo() {
char buffer[50]; char buffer[50];
@ -57,3 +57,19 @@ bool charger::getStatus() {
return active; return active;
} }
/* resets the capacity */
void charger::reset() {
}
/* updates the capacity */
void charger::update() {
capacity = 1;
//serialSend("update\r\n");
}

View File

@ -21,6 +21,7 @@ private:
ioController io; ioController io;
multiplexer mux; multiplexer mux;
struct time_t startTime; struct time_t startTime;
unsigned int capacity;
bool active; bool active;
public: public:
@ -28,12 +29,14 @@ public:
~charger(); ~charger();
double getCurrent(); double getCurrent();
double getVoltage(); double getVoltage();
double getCapacity(); unsigned int getCapacity();
void setStartTime(struct time_t pTime); void setStartTime(struct time_t pTime);
struct time_t getStartTime(); struct time_t getStartTime();
void getInfo(); void getInfo();
void setStatus(bool pBool); void setStatus(bool pBool);
bool getStatus(); bool getStatus();
void reset();
void update();
}; };
#endif /* SRC_CHARGER_H_ */ #endif /* SRC_CHARGER_H_ */

View File

@ -1,10 +1,13 @@
#include "openChargeMicro.h" #include "openChargeMicro.h"
charger* chargers; charger* chargers;
clock* clk;
void createChargers(); void createChargers();
void printStatus(); void printStatus();
void checkForBattery(); void checkForBattery();
void updateChargers();
bool everySec();
int main(void) { int main(void) {
@ -13,28 +16,53 @@ int main(void) {
serialSend(__DATE__ __TIME__); serialSend(__DATE__ __TIME__);
serialSend("\r\n"); serialSend("\r\n");
clock clk;
ioController io;
chargers = (charger *) malloc(CHARGER_SIZE * sizeof(charger)); chargers = (charger *) malloc(CHARGER_SIZE * sizeof(charger));
clk = (clock *) malloc(sizeof(clock));
clock tmp;
clk = &tmp;
ioController io;
io.deactivateChargers(); io.deactivateChargers();
io.setActiveLED(true); io.setActiveLED(true);
io.activateChargers(); io.activateChargers();
createChargers(); createChargers();
//loop till power off //loop till power off
while (true) { while (true) {
checkForBattery(); checkForBattery();
printStatus(); //printStatus();
updateChargers();
} }
return 0; return 0;
} }
bool everySec() {
static uint32_t time;
if (clk->getTime() != time) {
time = clk->getTime();
return true;
}
return false;
}
void updateChargers() {
if (everySec()) { //updates the chargers every sec
for (int i = 0; i < CHARGER_SIZE; i++) {
if (chargers[i].getStatus()) {
//charger active --> battery pluged on
chargers[i].update();
}
}
}
}
void checkForBattery() { void checkForBattery() {
for (int l = 0; l < CHARGER_SIZE; l++) { for (int l = 0; l < CHARGER_SIZE; l++) {
@ -64,6 +92,7 @@ void checkForBattery() {
} else { } else {
//serialSend("blocked\r\n"); //serialSend("blocked\r\n");
chargers[l].setStatus(false); chargers[l].setStatus(false);
chargers[l].reset();
} }
} }