Branch data Line data Source code
1 : : #include "bsgcontrol.h" 2 : : #include "calibration.h" 3 : : 4 : 6 : StateBSG selectBSGMode(const Vehicle vehicle, const Engine engine, const BSG bsg, 5 : : const Battery battery) { 6 : : 7 : 6 : StateBSG stateBSG = BSG_IDLE; 8 : : 9 : : // BSG_STARTER - Car Starter 10 [ + + ]: 6 : if (getBatteryState(battery) != BATTERY_DEAD){ 11 [ + + ]: 5 : if (getEngineState(engine) == ENGINE_OFF){ 12 [ + + ]: 2 : if(vehicle.requestCarStart){ 13 : 1 : stateBSG = BSG_STARTER; 14 : : } 15 : : else{ 16 : 1 : stateBSG = BSG_IDLE; 17 : : } 18 : : } 19 : : else{ 20 : : // BSG_GENERATOR - Regenerative Breaking 21 [ + + ]: 3 : if(getDriverIntention(vehicle) == DRIVE_INTENTION_REDUCE_SPEED){ 22 : 1 : stateBSG = BSG_GENERATOR; 23 : : } 24 : : //BSG_MOTOR - Torque Assistance 25 [ + + ]: 2 : else if(getDriverIntention(vehicle) == DRIVE_INTENTION_INCREASE_SPEED){ 26 : 1 : stateBSG = BSG_MOTOR; 27 : : } 28 : : else{ 29 : : //BSG_IDLE - Energy Saving 30 : 1 : stateBSG = BSG_IDLE; 31 : : } 32 : : } 33 : : } 34 : : else{ 35 : 1 : stateBSG = BSG_IDLE; 36 : : } 37 : 6 : return stateBSG; 38 : : }