detect batteries
This commit is contained in:
		@ -7,8 +7,6 @@
 | 
			
		||||
 | 
			
		||||
#include "openChargeMicro.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
charger::charger(const struct s_charger pCharger) {
 | 
			
		||||
	charger_settings = pCharger;
 | 
			
		||||
	active = false;
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,6 @@ private:
 | 
			
		||||
	bool active;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
	charger(const struct s_charger pCharger);
 | 
			
		||||
	~charger();
 | 
			
		||||
	double getCurrent();
 | 
			
		||||
 | 
			
		||||
@ -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();
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	//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) {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user