|
|
@@ -7,33 +7,33 @@ BatteryInfo battery_data[NUM_SLOTS];
|
|
|
void Battery_Init(){
|
|
|
for(uint8_t i=0; i<NUM_SLOTS; i++){
|
|
|
battery_data[i].slot_id = i;
|
|
|
- battery_data[i].pwm_value= 10;
|
|
|
+ battery_data[i].pwm_value= 0;
|
|
|
battery_data[i].charge_discharge= 0;
|
|
|
battery_data[i].battery_state = STATE_EMPTY;
|
|
|
battery_data[i].battery_measurement.voltage = 0;
|
|
|
battery_data[i].battery_measurement.current = 0;
|
|
|
battery_data[i].battery_measurement.temperature = 0;
|
|
|
battery_data[i].battery_measurement.slot_state = SLOT_STATE_OK;
|
|
|
- battery_data[i].battery_limits.min_voltage = 0;
|
|
|
- battery_data[i].battery_limits.max_voltage = 0;
|
|
|
- battery_data[i].battery_limits.cut_off_current = 0;
|
|
|
- battery_data[i].battery_limits.capacitance = 0;
|
|
|
- battery_data[i].battery_limits.charge_fraction = 0;
|
|
|
- battery_data[i].batteryLimitRecieved= false;
|
|
|
+ battery_data[i].min_voltage = 0;
|
|
|
+ battery_data[i].max_voltage = 0;
|
|
|
+ battery_data[i].cut_off_current = 0;
|
|
|
+ battery_data[i].capacitance = 0;
|
|
|
+ battery_data[i].charge_fraction = 0;
|
|
|
+ battery_data[i].batteryLimitReceived= false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void Battery_ReadState(uint8_t slot_id){
|
|
|
- if(battery_data[slot_id].battery_limits.min_voltage==0 &&
|
|
|
- battery_data[slot_id].battery_limits.max_voltage==0 &&
|
|
|
- battery_data[slot_id].battery_limits.cut_off_current==0){
|
|
|
+ if(battery_data[slot_id].min_voltage==0 &&
|
|
|
+ battery_data[slot_id].max_voltage==0 &&
|
|
|
+ battery_data[slot_id].cut_off_current==0){
|
|
|
battery_data[slot_id].battery_state = STATE_WAITING_FOR_LIMITS;
|
|
|
}
|
|
|
else if(battery_data[slot_id].battery_measurement.voltage < BATTERY_THRESHOLD){
|
|
|
battery_data[slot_id].battery_state = STATE_EMPTY;
|
|
|
}
|
|
|
else if((battery_data[slot_id].battery_measurement.voltage >= BATTERY_THRESHOLD) &&
|
|
|
- (battery_data[slot_id].battery_measurement.voltage < battery_data[slot_id].battery_limits.min_voltage)){
|
|
|
+ (battery_data[slot_id].battery_measurement.voltage < battery_data[slot_id].min_voltage)){
|
|
|
battery_data[slot_id].battery_state = STATE_BATTERY_DETECTED;
|
|
|
}
|
|
|
else if(battery_data[slot_id].battery_measurement.temperature > TEMPERATURE_MAX_C){
|