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_settings = pCharger;
active = false;
capacity = 0;
}
charger::~charger() {
@ -32,17 +33,16 @@ double charger::getVoltage() {
}
/* returns summed up charged capacity since charge start in mAh */
double charger::getCapacity() {
//TODO
return 1.1;
unsigned int charger::getCapacity() {
return capacity;
}
void charger::setStartTime(struct time_t pTime){
void charger::setStartTime(struct time_t pTime) {
startTime = pTime;
}
struct time_t charger::getStartTime(){
return startTime;
}
struct time_t charger::getStartTime() {
return startTime;
}
void charger::getInfo() {
char buffer[50];
@ -57,3 +57,19 @@ bool charger::getStatus() {
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;
multiplexer mux;
struct time_t startTime;
unsigned int capacity;
bool active;
public:
@ -28,12 +29,14 @@ public:
~charger();
double getCurrent();
double getVoltage();
double getCapacity();
unsigned int getCapacity();
void setStartTime(struct time_t pTime);
struct time_t getStartTime();
void getInfo();
void setStatus(bool pBool);
bool getStatus();
void reset();
void update();
};
#endif /* SRC_CHARGER_H_ */

View File

@ -1,10 +1,13 @@
#include "openChargeMicro.h"
charger* chargers;
clock* clk;
void createChargers();
void printStatus();
void checkForBattery();
void updateChargers();
bool everySec();
int main(void) {
@ -13,28 +16,53 @@ int main(void) {
serialSend(__DATE__ __TIME__);
serialSend("\r\n");
clock clk;
ioController io;
chargers = (charger *) malloc(CHARGER_SIZE * sizeof(charger));
clk = (clock *) malloc(sizeof(clock));
clock tmp;
clk = &tmp;
ioController io;
io.deactivateChargers();
io.setActiveLED(true);
io.activateChargers();
createChargers();
//loop till power off
while (true) {
checkForBattery();
printStatus();
//printStatus();
updateChargers();
}
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() {
for (int l = 0; l < CHARGER_SIZE; l++) {
@ -64,6 +92,7 @@ void checkForBattery() {
} else {
//serialSend("blocked\r\n");
chargers[l].setStatus(false);
chargers[l].reset();
}
}