changed status charger to a struct
This commit is contained in:
		@ -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 */
 | 
				
			||||||
 | 
				
			|||||||
@ -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();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -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);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -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_ */
 | 
				
			||||||
 | 
				
			|||||||
@ -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);
 | 
				
			||||||
 | 
				
			|||||||
@ -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();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user