changed status charger to a struct

This commit is contained in:
Hendrik Schutter 2018-11-26 22:04:00 +01:00
parent 75b2d90547
commit b1d9079cae
6 changed files with 42 additions and 15 deletions

View File

@ -9,7 +9,9 @@
charger::charger(const struct s_charger pCharger) { charger::charger(const struct s_charger pCharger) {
charger_settings = pCharger; charger_settings = pCharger;
active = false; status.connected = false;
status.active = false;
//active = false;
capacity = 0; capacity = 0;
} }
@ -53,11 +55,11 @@ void charger::getInfo() {
serialSend(buffer); serialSend(buffer);
#endif #endif
} }
void charger::setStatus(bool pBool) { void charger::setStatus(struct s_charger_status pStatus) {
active = pBool; status = pStatus;
} }
bool charger::getStatus() { struct s_charger_status charger::getStatus() {
return active; return status;
} }
/* resets the capacity */ /* resets the capacity */

View File

@ -14,6 +14,11 @@ struct s_charger {
int chI; int chI;
}; };
struct s_charger_status{
bool connected;
bool active;
};
class charger { class charger {
private: private:
@ -22,7 +27,7 @@ private:
multiplexer mux; multiplexer mux;
struct time_t startTime; struct time_t startTime;
unsigned long int capacity; //in µAh unsigned long int capacity; //in µAh
bool active; struct s_charger_status status;
public: public:
charger(const struct s_charger pCharger); charger(const struct s_charger pCharger);
@ -33,8 +38,8 @@ public:
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(struct s_charger_status pStatus);
bool getStatus(); struct s_charger_status getStatus();
void reset(); void reset();
void update(); void update();
}; };

View File

@ -118,3 +118,15 @@ void ioController::setWS2812(const unsigned char red, const unsigned char green,
led.sync(); 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);
}

View File

@ -11,6 +11,8 @@
class ioController { class ioController {
private: private:
void setWS2812(const unsigned char red, const unsigned char green,
const unsigned char blue);
public: public:
ioController(); ioController();
@ -25,9 +27,10 @@ public:
void adc_init(void); void adc_init(void);
int readAdc(char chan); int readAdc(char chan);
void setMultiplexer(bool pS2, bool pS1, bool pS0); 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_ */ #endif /* SRC_IOCONTROLLER_H_ */

View File

@ -64,7 +64,7 @@ void updateGUI() {
//finds one or more active charges or aborts after CHARGER_SIZE //finds one or more active charges or aborts after CHARGER_SIZE
while (next && (loops < CHARGER_SIZE)) { while (next && (loops < CHARGER_SIZE)) {
loops++; loops++;
if (chargers[indexCount].getStatus()) { if (chargers[indexCount].getStatus().connected) {
#ifdef DEBUG #ifdef DEBUG
char c[50]; char c[50];
sprintf(c, "updating: %i\r\n", (int) indexCount); sprintf(c, "updating: %i\r\n", (int) indexCount);
@ -100,7 +100,7 @@ bool everySec() {
void updateChargers() { void updateChargers() {
for (int i = 0; i < CHARGER_SIZE; i++) { for (int i = 0; i < CHARGER_SIZE; i++) {
if (chargers[i].getStatus()) { if (chargers[i].getStatus().connected) {
//charger active --> battery pluged on //charger active --> battery pluged on
chargers[i].update(); chargers[i].update();
} }
@ -136,7 +136,9 @@ void checkForBattery() { //TODO
} }
if (!zero) { if (!zero) {
chargers[l].setStatus(true); struct s_charger_status tmp = chargers[l].getStatus();
tmp.connected = true;
chargers[l].setStatus(tmp);
//io->setActiveLED(true); //io->setActiveLED(true);
if (activeChargers[l] == 0) { if (activeChargers[l] == 0) {
chargers[l].setStartTime(clk->getTimeStamp()); chargers[l].setStartTime(clk->getTimeStamp());
@ -156,7 +158,9 @@ void checkForBattery() { //TODO
serialSend("no connection\r\n"); serialSend("no connection\r\n");
#endif #endif
if (errorCount[l] == 0) { 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; activeChargers[l] = 0;
chargers[l].reset(); //sets the capacity to zero chargers[l].reset(); //sets the capacity to zero
#ifdef DEBUG #ifdef DEBUG
@ -199,7 +203,7 @@ void createChargers() {
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 (chargers[i].getStatus()) { if (chargers[i].getStatus().connected) {
chargers[i].getInfo(); //print values chargers[i].getInfo(); //print values
//char charVal[10]; //char charVal[10];
//dtostrf(chargers[i].getCurrent(), 4, 0, charVal); //dtostrf(chargers[i].getCurrent(), 4, 0, charVal);

View File

@ -69,6 +69,7 @@ void serialSend(const char* sendString);
/* ws2812 */ /* ws2812 */
#define LED_C 1 #define LED_C 1
#define BRIGHTNESS 20 //0 to 255
void updateChargers(); void updateChargers();