diff --git a/Software/src/charger.cpp b/Software/src/charger.cpp index fd35cb6..54e3d22 100644 --- a/Software/src/charger.cpp +++ b/Software/src/charger.cpp @@ -7,8 +7,6 @@ #include "openChargeMicro.h" - - charger::charger(const struct s_charger pCharger) { charger_settings = pCharger; active = false; diff --git a/Software/src/charger.h b/Software/src/charger.h index 171792e..56b6da8 100644 --- a/Software/src/charger.h +++ b/Software/src/charger.h @@ -23,7 +23,6 @@ private: bool active; public: - charger(const struct s_charger pCharger); ~charger(); double getCurrent(); diff --git a/Software/src/main.cpp b/Software/src/main.cpp index af37acd..bc340ad 100644 --- a/Software/src/main.cpp +++ b/Software/src/main.cpp @@ -4,134 +4,107 @@ charger* chargers; void createChargers(); void printStatus(); +void checkForBattery(); int main(void) { serialSetup(); - serialSend("Hello World\r\n"); + serialSend("Hello World - "); + serialSend(__DATE__ __TIME__); + serialSend("\r\n"); clock clk; ioController io; + chargers = (charger *) malloc(CHARGER_SIZE * sizeof(charger)); + io.deactivateChargers(); io.setActiveLED(true); io.activateChargers(); - //chargers[0]->getInfo(); - - - - chargers=(charger *) malloc(4*sizeof(charger)); - - createChargers(); -/* - chargers[0].getInfo(); - chargers[1].getInfo(); - chargers[2].getInfo(); - chargers[3].getInfo(); -*/ - printStatus(); + + + //loop till power off + while (true) { + + checkForBattery(); + printStatus(); + } return 0; } -void createChargers() { - /* create chargers */ +void checkForBattery() { + 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; charger_settings.chU = CH0_U; charger_settings.chI = CH0_I; charger_settings.nr = CH0_NR; charger chrg0 = charger(charger_settings); - chrg0.setStatus(true); chargers[0] = chrg0; charger_settings.chU = CH1_U; charger_settings.chI = CH1_I; charger_settings.nr = CH1_NR; charger chrg1 = charger(charger_settings); - chrg1.setStatus(true); chargers[1] = chrg1; charger_settings.chU = CH2_U; charger_settings.chI = CH2_I; charger_settings.nr = CH2_NR; charger chrg2 = charger(charger_settings); - chrg2.setStatus(true); chargers[2] = chrg2; charger_settings.chU = CH3_U; charger_settings.chI = CH3_I; charger_settings.nr = CH3_NR; charger chrg3 = charger(charger_settings); - chrg3.setStatus(true); 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() { - serialSend("printing status .. \r\n"); + //serialSend("printing status .. \r\n"); for (int i = 0; i < CHARGER_SIZE; i++) { - if (true) { + if (chargers[i].getStatus()) { chargers[i].getInfo(); //print values } } - } void serialSetup(void) {