detect batteries

This commit is contained in:
Hendrik Schutter 2018-11-22 21:41:46 +01:00
parent 9f10767e1f
commit 0728477503
3 changed files with 51 additions and 81 deletions

View File

@ -7,8 +7,6 @@
#include "openChargeMicro.h" #include "openChargeMicro.h"
charger::charger(const struct s_charger pCharger) { charger::charger(const struct s_charger pCharger) {
charger_settings = pCharger; charger_settings = pCharger;
active = false; active = false;

View File

@ -23,7 +23,6 @@ private:
bool active; bool active;
public: public:
charger(const struct s_charger pCharger); charger(const struct s_charger pCharger);
~charger(); ~charger();
double getCurrent(); double getCurrent();

View File

@ -4,134 +4,107 @@ charger* chargers;
void createChargers(); void createChargers();
void printStatus(); void printStatus();
void checkForBattery();
int main(void) { int main(void) {
serialSetup(); serialSetup();
serialSend("Hello World\r\n"); serialSend("Hello World - ");
serialSend(__DATE__ __TIME__);
serialSend("\r\n");
clock clk; clock clk;
ioController io; ioController io;
chargers = (charger *) malloc(CHARGER_SIZE * sizeof(charger));
io.deactivateChargers(); io.deactivateChargers();
io.setActiveLED(true); io.setActiveLED(true);
io.activateChargers(); io.activateChargers();
//chargers[0]->getInfo();
chargers=(charger *) malloc(4*sizeof(charger));
createChargers(); createChargers();
/*
chargers[0].getInfo();
chargers[1].getInfo(); //loop till power off
chargers[2].getInfo(); while (true) {
chargers[3].getInfo();
*/ checkForBattery();
printStatus(); printStatus();
}
return 0; return 0;
} }
void createChargers() { void checkForBattery() {
/* create chargers */ for (int l = 0; l < CHARGER_SIZE; l++) {
bool zero = false;
double tmp1 = 0.0;
double tmp2 = 0.0;
double difference = 5.0; //TODO after calibation
for (int i = 0; i < 10; i++) {
tmp2 = tmp1;
tmp1 = chargers[l].getVoltage();
if ((tmp1 == 0.0) || (((tmp1 - tmp2 > difference)) && i != 0)) {
zero = true;
}
}
if (!zero) {
/*
char charVal[10];
dtostrf(chargers[0].getVoltage(), 4, 2, charVal);
serialSend("Charger01 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
*/
chargers[l].setStatus(true);
} else {
//serialSend("blocked\r\n");
chargers[l].setStatus(false);
}
}
}
void createChargers() {
s_charger charger_settings; s_charger charger_settings;
charger_settings.chU = CH0_U; charger_settings.chU = CH0_U;
charger_settings.chI = CH0_I; charger_settings.chI = CH0_I;
charger_settings.nr = CH0_NR; charger_settings.nr = CH0_NR;
charger chrg0 = charger(charger_settings); charger chrg0 = charger(charger_settings);
chrg0.setStatus(true);
chargers[0] = chrg0; chargers[0] = chrg0;
charger_settings.chU = CH1_U; charger_settings.chU = CH1_U;
charger_settings.chI = CH1_I; charger_settings.chI = CH1_I;
charger_settings.nr = CH1_NR; charger_settings.nr = CH1_NR;
charger chrg1 = charger(charger_settings); charger chrg1 = charger(charger_settings);
chrg1.setStatus(true);
chargers[1] = chrg1; chargers[1] = chrg1;
charger_settings.chU = CH2_U; charger_settings.chU = CH2_U;
charger_settings.chI = CH2_I; charger_settings.chI = CH2_I;
charger_settings.nr = CH2_NR; charger_settings.nr = CH2_NR;
charger chrg2 = charger(charger_settings); charger chrg2 = charger(charger_settings);
chrg2.setStatus(true);
chargers[2] = chrg2; chargers[2] = chrg2;
charger_settings.chU = CH3_U; charger_settings.chU = CH3_U;
charger_settings.chI = CH3_I; charger_settings.chI = CH3_I;
charger_settings.nr = CH3_NR; charger_settings.nr = CH3_NR;
charger chrg3 = charger(charger_settings); charger chrg3 = charger(charger_settings);
chrg3.setStatus(true);
chargers[3] = chrg3; chargers[3] = chrg3;
//chargers[2]->getInfo();
//chargers[3]->getInfo();
/* create charger */
/*
while (true) {
char charVal[10];
dtostrf(charger01.getVoltage(), 4, 2, charVal);
serialSend("Charger01 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger01.getCurrent(), 4, 2, charVal);
serialSend("Charger01 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
dtostrf(charger02.getVoltage(), 4, 2, charVal);
serialSend("Charger02 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger02.getCurrent(), 4, 2, charVal);
serialSend("Charger02 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
dtostrf(charger03.getVoltage(), 4, 2, charVal);
serialSend("Charger03 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger03.getCurrent(), 4, 2, charVal);
serialSend("Charger03 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
dtostrf(charger04.getVoltage(), 4, 2, charVal);
serialSend("Charger04 - ");
serialSend(charVal);
serialSend(" Volt\r\n");
dtostrf(charger04.getCurrent(), 4, 2, charVal);
serialSend("Charger04 - ");
serialSend(charVal);
serialSend(" mAh\r\n");
serialSend("\r\n");
_delay_ms(1000);
}
*/
} }
void printStatus() { void printStatus() {
serialSend("printing status .. \r\n"); //serialSend("printing status .. \r\n");
for (int i = 0; i < CHARGER_SIZE; i++) { for (int i = 0; i < CHARGER_SIZE; i++) {
if (true) { if (chargers[i].getStatus()) {
chargers[i].getInfo(); //print values chargers[i].getInfo(); //print values
} }
} }
} }
void serialSetup(void) { void serialSetup(void) {