|
|
@@ -31,21 +31,13 @@ void Battery_StateCondition(uint8_t slot_id){
|
|
|
|
|
|
if(battery_data[slot_id].battery_measurement.voltage < BATTERY_THRESHOLD){
|
|
|
battery_data[slot_id].battery_state = STATE_EMPTY;
|
|
|
- }
|
|
|
- else 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;
|
|
|
- //printf("Waiting to receive battery limits to start charging/discharging\n");
|
|
|
- }
|
|
|
- else if((battery_data[slot_id].battery_measurement.voltage >= BATTERY_THRESHOLD) &&
|
|
|
- (battery_data[slot_id].battery_measurement.voltage < battery_data[slot_id].min_voltage)){
|
|
|
+ }else if((battery_data[slot_id].battery_measurement.voltage >= BATTERY_THRESHOLD) && battery_data[slot_id].batteryLimitReceived==false){
|
|
|
battery_data[slot_id].battery_state = STATE_BATTERY_DETECTED;
|
|
|
- }
|
|
|
- else if(battery_data[slot_id].battery_measurement.temperature > TEMPERATURE_MAX_C){
|
|
|
+ }else 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.temperature > TEMPERATURE_MAX_C){
|
|
|
battery_data[slot_id].battery_state = STATE_OVERHEATING;
|
|
|
- }
|
|
|
- else{
|
|
|
+ }else{
|
|
|
battery_data[slot_id].battery_state = STATE_MEASUREMENT_IN_PROGRESS;
|
|
|
}
|
|
|
}
|