diff --git a/Software/src/charger.cpp b/Software/src/charger.cpp index 9f11ad2..0e0b191 100644 --- a/Software/src/charger.cpp +++ b/Software/src/charger.cpp @@ -9,7 +9,9 @@ charger::charger(const struct s_charger pCharger) { charger_settings = pCharger; - active = false; + status.connected = false; + status.active = false; + //active = false; capacity = 0; } @@ -53,11 +55,11 @@ void charger::getInfo() { serialSend(buffer); #endif } -void charger::setStatus(bool pBool) { - active = pBool; +void charger::setStatus(struct s_charger_status pStatus) { + status = pStatus; } -bool charger::getStatus() { - return active; +struct s_charger_status charger::getStatus() { + return status; } /* resets the capacity */ diff --git a/Software/src/charger.h b/Software/src/charger.h index 057bdfd..1d6b770 100644 --- a/Software/src/charger.h +++ b/Software/src/charger.h @@ -14,6 +14,11 @@ struct s_charger { int chI; }; +struct s_charger_status{ + bool connected; + bool active; +}; + class charger { private: @@ -22,7 +27,7 @@ private: multiplexer mux; struct time_t startTime; unsigned long int capacity; //in µAh - bool active; + struct s_charger_status status; public: charger(const struct s_charger pCharger); @@ -33,8 +38,8 @@ public: void setStartTime(struct time_t pTime); struct time_t getStartTime(); void getInfo(); - void setStatus(bool pBool); - bool getStatus(); + void setStatus(struct s_charger_status pStatus); + struct s_charger_status getStatus(); void reset(); void update(); }; diff --git a/Software/src/ioController.cpp b/Software/src/ioController.cpp index c8e12d9..54b368b 100644 --- a/Software/src/ioController.cpp +++ b/Software/src/ioController.cpp @@ -118,3 +118,15 @@ void ioController::setWS2812(const unsigned char red, const unsigned char green, led.sync(); } +void ioController::setWS2812_clear() { + setWS2812(0, 0, 0); +} + +void ioController::setWS2812_green() { + setWS2812(0, BRIGHTNESS, 0); +} + +void ioController::setWS2812_red() { + setWS2812(BRIGHTNESS, 0, 0); +} + diff --git a/Software/src/ioController.h b/Software/src/ioController.h index 13d2cdf..c8382ec 100644 --- a/Software/src/ioController.h +++ b/Software/src/ioController.h @@ -11,6 +11,8 @@ class ioController { private: + void setWS2812(const unsigned char red, const unsigned char green, + const unsigned char blue); public: ioController(); @@ -25,9 +27,10 @@ public: void adc_init(void); int readAdc(char chan); void setMultiplexer(bool pS2, bool pS1, bool pS0); - void setWS2812(const unsigned char red, const unsigned char green, - const unsigned char blue); + void setWS2812_clear(void); + void setWS2812_green(void); + void setWS2812_red(void); }; #endif /* SRC_IOCONTROLLER_H_ */ diff --git a/Software/src/main.cpp b/Software/src/main.cpp index 0cf3fcd..b7dd773 100644 --- a/Software/src/main.cpp +++ b/Software/src/main.cpp @@ -64,7 +64,7 @@ void updateGUI() { //finds one or more active charges or aborts after CHARGER_SIZE while (next && (loops < CHARGER_SIZE)) { loops++; - if (chargers[indexCount].getStatus()) { + if (chargers[indexCount].getStatus().connected) { #ifdef DEBUG char c[50]; sprintf(c, "updating: %i\r\n", (int) indexCount); @@ -100,7 +100,7 @@ bool everySec() { void updateChargers() { for (int i = 0; i < CHARGER_SIZE; i++) { - if (chargers[i].getStatus()) { + if (chargers[i].getStatus().connected) { //charger active --> battery pluged on chargers[i].update(); } @@ -136,7 +136,9 @@ void checkForBattery() { //TODO } if (!zero) { - chargers[l].setStatus(true); + struct s_charger_status tmp = chargers[l].getStatus(); + tmp.connected = true; + chargers[l].setStatus(tmp); //io->setActiveLED(true); if (activeChargers[l] == 0) { chargers[l].setStartTime(clk->getTimeStamp()); @@ -156,7 +158,9 @@ void checkForBattery() { //TODO serialSend("no connection\r\n"); #endif if (errorCount[l] == 0) { - chargers[l].setStatus(false); + struct s_charger_status tmp = chargers[l].getStatus(); + tmp.connected = false; + chargers[l].setStatus(tmp); activeChargers[l] = 0; chargers[l].reset(); //sets the capacity to zero #ifdef DEBUG @@ -199,7 +203,7 @@ void createChargers() { void printStatus() { //serialSend("printing status .. \r\n"); for (int i = 0; i < CHARGER_SIZE; i++) { - if (chargers[i].getStatus()) { + if (chargers[i].getStatus().connected) { chargers[i].getInfo(); //print values //char charVal[10]; //dtostrf(chargers[i].getCurrent(), 4, 0, charVal); diff --git a/Software/src/openChargeMicro.h b/Software/src/openChargeMicro.h index 26f4ab8..598a2eb 100644 --- a/Software/src/openChargeMicro.h +++ b/Software/src/openChargeMicro.h @@ -69,6 +69,7 @@ void serialSend(const char* sendString); /* ws2812 */ #define LED_C 1 +#define BRIGHTNESS 20 //0 to 255 void updateChargers();