array with charger objects
This commit is contained in:
parent
a7760716cb
commit
9f10767e1f
|
@ -7,12 +7,14 @@
|
||||||
|
|
||||||
#include "openChargeMicro.h"
|
#include "openChargeMicro.h"
|
||||||
|
|
||||||
charger::charger(struct s_charger pCharger) {
|
|
||||||
|
|
||||||
|
charger::charger(const struct s_charger pCharger) {
|
||||||
charger_settings = pCharger;
|
charger_settings = pCharger;
|
||||||
|
active = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
charger::~charger() {
|
charger::~charger() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double charger::getCurrent() {
|
double charger::getCurrent() {
|
||||||
|
@ -45,4 +47,10 @@ void charger::getInfo() {
|
||||||
charger_settings.chU, charger_settings.chI);
|
charger_settings.chU, charger_settings.chI);
|
||||||
serialSend(buffer);
|
serialSend(buffer);
|
||||||
}
|
}
|
||||||
|
void charger::setStatus(bool pBool) {
|
||||||
|
active = pBool;
|
||||||
|
}
|
||||||
|
bool charger::getStatus() {
|
||||||
|
return active;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,15 +20,19 @@ private:
|
||||||
struct s_charger charger_settings;
|
struct s_charger charger_settings;
|
||||||
ioController io;
|
ioController io;
|
||||||
multiplexer mux;
|
multiplexer mux;
|
||||||
|
bool active;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
charger(struct s_charger pCharger);
|
|
||||||
|
charger(const struct s_charger pCharger);
|
||||||
~charger();
|
~charger();
|
||||||
double getCurrent();
|
double getCurrent();
|
||||||
double getVoltage();
|
double getVoltage();
|
||||||
double getCapacity();
|
double getCapacity();
|
||||||
double getChargeTime();
|
double getChargeTime();
|
||||||
void getInfo();
|
void getInfo();
|
||||||
|
void setStatus(bool pBool);
|
||||||
|
bool getStatus();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* SRC_CHARGER_H_ */
|
#endif /* SRC_CHARGER_H_ */
|
||||||
|
|
|
@ -9,10 +9,10 @@
|
||||||
#define SRC_CLOCK_H_
|
#define SRC_CLOCK_H_
|
||||||
|
|
||||||
struct time_t {
|
struct time_t {
|
||||||
unsigned int diffHour;
|
unsigned long int diffHour;
|
||||||
unsigned int diffMinute;
|
unsigned long int diffMinute;
|
||||||
unsigned int diffSecond;
|
unsigned long int diffSecond;
|
||||||
unsigned int seconds;
|
unsigned long int seconds;
|
||||||
};
|
};
|
||||||
|
|
||||||
class clock {
|
class clock {
|
||||||
|
|
|
@ -59,6 +59,15 @@ void ioController::setActiveLED(bool pBool) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ioController::setBuzzer(bool pBool) {
|
||||||
|
//TODO needs testing
|
||||||
|
if (pBool) {
|
||||||
|
PORTB |= (1 << BUZZER); //ON
|
||||||
|
} else {
|
||||||
|
PORTB &= ~(1 << BUZZER); //OFF
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ioController::adc_init(void) {
|
void ioController::adc_init(void) {
|
||||||
ADMUX = (1 << REFS0); //select AVCC as reference
|
ADMUX = (1 << REFS0); //select AVCC as reference
|
||||||
ADCSRA = (1 << ADEN) | 7; //enable and prescale = 128 (16MHz/128 = 125kHz)
|
ADCSRA = (1 << ADEN) | 7; //enable and prescale = 128 (16MHz/128 = 125kHz)
|
||||||
|
|
|
@ -12,6 +12,7 @@ class ioController {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ioController();
|
ioController();
|
||||||
~ioController();
|
~ioController();
|
||||||
|
@ -21,6 +22,7 @@ public:
|
||||||
void activateChargers();
|
void activateChargers();
|
||||||
void deactivateChargers();
|
void deactivateChargers();
|
||||||
void setActiveLED(bool pBool);
|
void setActiveLED(bool pBool);
|
||||||
|
void setBuzzer(bool pBool);
|
||||||
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);
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#include "openChargeMicro.h"
|
#include "openChargeMicro.h"
|
||||||
|
|
||||||
void test();
|
charger* chargers;
|
||||||
|
|
||||||
|
void createChargers();
|
||||||
|
void printStatus();
|
||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
|
|
||||||
|
@ -14,120 +17,121 @@ int main(void) {
|
||||||
io.setActiveLED(true);
|
io.setActiveLED(true);
|
||||||
io.activateChargers();
|
io.activateChargers();
|
||||||
|
|
||||||
char charVal[10];
|
//chargers[0]->getInfo();
|
||||||
|
|
||||||
time_t ts01 = clk.getTimeStamp();
|
|
||||||
|
|
||||||
dtostrf(ts01.seconds, 4, 0, charVal);
|
|
||||||
serialSend(charVal);
|
|
||||||
serialSend(" s (stamp)\r\n");
|
|
||||||
|
|
||||||
while (1) {
|
chargers=(charger *) malloc(4*sizeof(charger));
|
||||||
|
|
||||||
if (((int) clk.getTime() % 10) == 0) {
|
|
||||||
|
|
||||||
time_t ts02 = clk.getTime(ts01);
|
createChargers();
|
||||||
|
/*
|
||||||
dtostrf(ts02.diffHour, 4, 0, charVal);
|
chargers[0].getInfo();
|
||||||
serialSend(charVal);
|
chargers[1].getInfo();
|
||||||
serialSend(" hour\r\n");
|
chargers[2].getInfo();
|
||||||
|
chargers[3].getInfo();
|
||||||
dtostrf(ts02.diffMinute, 4, 0, charVal);
|
*/
|
||||||
serialSend(charVal);
|
printStatus();
|
||||||
serialSend(" minute\r\n");
|
|
||||||
|
|
||||||
dtostrf(ts02.diffSecond, 4, 0, charVal);
|
|
||||||
serialSend(charVal);
|
|
||||||
serialSend(" sec\r\n");
|
|
||||||
|
|
||||||
dtostrf(ts02.seconds, 4, 0, charVal);
|
|
||||||
serialSend(charVal);
|
|
||||||
serialSend(" sec (since beginning of stamp)\r\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//void test();
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void test() {
|
void createChargers() {
|
||||||
/* create charger */
|
/* create chargers */
|
||||||
|
|
||||||
s_charger charger_settings;
|
s_charger charger_settings;
|
||||||
|
|
||||||
charger_settings.chU = 0;
|
charger_settings.chU = CH0_U;
|
||||||
charger_settings.chI = 4;
|
charger_settings.chI = CH0_I;
|
||||||
charger_settings.nr = 0;
|
charger_settings.nr = CH0_NR;
|
||||||
charger charger01 = charger(charger_settings);
|
charger chrg0 = charger(charger_settings);
|
||||||
charger01.getInfo();
|
chrg0.setStatus(true);
|
||||||
|
chargers[0] = chrg0;
|
||||||
|
|
||||||
charger_settings.chU = 1;
|
charger_settings.chU = CH1_U;
|
||||||
charger_settings.chI = 5;
|
charger_settings.chI = CH1_I;
|
||||||
charger_settings.nr = 1;
|
charger_settings.nr = CH1_NR;
|
||||||
charger charger02 = charger(charger_settings);
|
charger chrg1 = charger(charger_settings);
|
||||||
charger02.getInfo();
|
chrg1.setStatus(true);
|
||||||
|
chargers[1] = chrg1;
|
||||||
|
|
||||||
charger_settings.chU = 2;
|
charger_settings.chU = CH2_U;
|
||||||
charger_settings.chI = 6;
|
charger_settings.chI = CH2_I;
|
||||||
charger_settings.nr = 2;
|
charger_settings.nr = CH2_NR;
|
||||||
charger charger03 = charger(charger_settings);
|
charger chrg2 = charger(charger_settings);
|
||||||
charger03.getInfo();
|
chrg2.setStatus(true);
|
||||||
|
chargers[2] = chrg2;
|
||||||
|
|
||||||
charger_settings.chU = 3;
|
charger_settings.chU = CH3_U;
|
||||||
charger_settings.chI = 7;
|
charger_settings.chI = CH3_I;
|
||||||
charger_settings.nr = 3;
|
charger_settings.nr = CH3_NR;
|
||||||
charger charger04 = charger(charger_settings);
|
charger chrg3 = charger(charger_settings);
|
||||||
charger04.getInfo();
|
chrg3.setStatus(true);
|
||||||
|
chargers[3] = chrg3;
|
||||||
|
|
||||||
|
|
||||||
|
//chargers[2]->getInfo();
|
||||||
|
//chargers[3]->getInfo();
|
||||||
|
|
||||||
/* create charger */
|
/* create charger */
|
||||||
|
|
||||||
while (true) {
|
/*
|
||||||
char charVal[10];
|
while (true) {
|
||||||
dtostrf(charger01.getVoltage(), 4, 2, charVal);
|
char charVal[10];
|
||||||
serialSend("Charger01 - ");
|
dtostrf(charger01.getVoltage(), 4, 2, charVal);
|
||||||
serialSend(charVal);
|
serialSend("Charger01 - ");
|
||||||
serialSend(" Volt\r\n");
|
serialSend(charVal);
|
||||||
|
serialSend(" Volt\r\n");
|
||||||
|
|
||||||
dtostrf(charger01.getCurrent(), 4, 2, charVal);
|
dtostrf(charger01.getCurrent(), 4, 2, charVal);
|
||||||
serialSend("Charger01 - ");
|
serialSend("Charger01 - ");
|
||||||
serialSend(charVal);
|
serialSend(charVal);
|
||||||
serialSend(" mAh\r\n");
|
serialSend(" mAh\r\n");
|
||||||
|
|
||||||
dtostrf(charger02.getVoltage(), 4, 2, charVal);
|
dtostrf(charger02.getVoltage(), 4, 2, charVal);
|
||||||
serialSend("Charger02 - ");
|
serialSend("Charger02 - ");
|
||||||
serialSend(charVal);
|
serialSend(charVal);
|
||||||
serialSend(" Volt\r\n");
|
serialSend(" Volt\r\n");
|
||||||
dtostrf(charger02.getCurrent(), 4, 2, charVal);
|
dtostrf(charger02.getCurrent(), 4, 2, charVal);
|
||||||
serialSend("Charger02 - ");
|
serialSend("Charger02 - ");
|
||||||
serialSend(charVal);
|
serialSend(charVal);
|
||||||
serialSend(" mAh\r\n");
|
serialSend(" mAh\r\n");
|
||||||
|
|
||||||
dtostrf(charger03.getVoltage(), 4, 2, charVal);
|
dtostrf(charger03.getVoltage(), 4, 2, charVal);
|
||||||
serialSend("Charger03 - ");
|
serialSend("Charger03 - ");
|
||||||
serialSend(charVal);
|
serialSend(charVal);
|
||||||
serialSend(" Volt\r\n");
|
serialSend(" Volt\r\n");
|
||||||
dtostrf(charger03.getCurrent(), 4, 2, charVal);
|
dtostrf(charger03.getCurrent(), 4, 2, charVal);
|
||||||
serialSend("Charger03 - ");
|
serialSend("Charger03 - ");
|
||||||
serialSend(charVal);
|
serialSend(charVal);
|
||||||
serialSend(" mAh\r\n");
|
serialSend(" mAh\r\n");
|
||||||
|
|
||||||
dtostrf(charger04.getVoltage(), 4, 2, charVal);
|
dtostrf(charger04.getVoltage(), 4, 2, charVal);
|
||||||
serialSend("Charger04 - ");
|
serialSend("Charger04 - ");
|
||||||
serialSend(charVal);
|
serialSend(charVal);
|
||||||
serialSend(" Volt\r\n");
|
serialSend(" Volt\r\n");
|
||||||
|
|
||||||
dtostrf(charger04.getCurrent(), 4, 2, charVal);
|
dtostrf(charger04.getCurrent(), 4, 2, charVal);
|
||||||
serialSend("Charger04 - ");
|
serialSend("Charger04 - ");
|
||||||
serialSend(charVal);
|
serialSend(charVal);
|
||||||
serialSend(" mAh\r\n");
|
serialSend(" mAh\r\n");
|
||||||
|
|
||||||
serialSend("\r\n");
|
serialSend("\r\n");
|
||||||
|
|
||||||
_delay_ms(1000);
|
_delay_ms(1000);
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
void printStatus() {
|
||||||
|
serialSend("printing status .. \r\n");
|
||||||
|
for (int i = 0; i < CHARGER_SIZE; i++) {
|
||||||
|
if (true) {
|
||||||
|
chargers[i].getInfo(); //print values
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void serialSetup(void) {
|
void serialSetup(void) {
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
||||||
/* project header */
|
/* project header */
|
||||||
#include "ioController.h"
|
#include "ioController.h"
|
||||||
#include "multiplexer.h"
|
#include "multiplexer.h"
|
||||||
|
@ -34,3 +33,28 @@
|
||||||
void serialSetup(void);
|
void serialSetup(void);
|
||||||
void serialSend(const char* sendString);
|
void serialSend(const char* sendString);
|
||||||
|
|
||||||
|
/* Charger Config */
|
||||||
|
#define CHARGER_SIZE 4
|
||||||
|
|
||||||
|
// Charger 0
|
||||||
|
#define CH0_NR 0
|
||||||
|
#define CH0_U 0
|
||||||
|
#define CH0_I 4
|
||||||
|
|
||||||
|
// Charger 1
|
||||||
|
#define CH1_NR 1
|
||||||
|
#define CH1_U 1
|
||||||
|
#define CH1_I 5
|
||||||
|
|
||||||
|
// Charger 2
|
||||||
|
#define CH2_NR 2
|
||||||
|
#define CH2_U 2
|
||||||
|
#define CH2_I 6
|
||||||
|
|
||||||
|
// Charger 3
|
||||||
|
#define CH3_NR 3
|
||||||
|
#define CH3_U 3
|
||||||
|
#define CH3_I 7
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue