diff options
Diffstat (limited to 'src/policy_manager/zipc/dummy_stm.c')
-rw-r--r-- | src/policy_manager/zipc/dummy_stm.c | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/src/policy_manager/zipc/dummy_stm.c b/src/policy_manager/zipc/dummy_stm.c index 968b086..095e5b0 100644 --- a/src/policy_manager/zipc/dummy_stm.c +++ b/src/policy_manager/zipc/dummy_stm.c @@ -4,6 +4,8 @@ const char* gStmEventName[] = { "activate", "deactivate", + "trans_gear_neutral", + "trans_gear_not_neutral", "parking_brake_off", "parking_brake_on", "accel_pedal_off", @@ -16,6 +18,8 @@ const char* gStmEventName[] = { const int gStmEventNo[] = { STM_EVT_NO_ACTIVATE, STM_EVT_NO_DEACTIVATE, + STM_EVT_NO_TRANS_GEAR_N, + STM_EVT_NO_TRANS_GEAR_NOT_N, STM_EVT_NO_PARKING_BRAKE_OFF, STM_EVT_NO_PARKING_BRAKE_ON, STM_EVT_NO_ACCEL_PEDAL_OFF, @@ -68,6 +72,11 @@ const int gStmAreaNo[] = { }; // String for state +const char* gStmTransGearStateNo2Name[] = { + "trans_gear_neutral", + "trans_gear_not_neutral" +}; + const char* gStmParkingBrakeStateNo2Name[] = { "parking_brake_off", "parking_brake_on" @@ -117,6 +126,7 @@ void stmInitialize() { g_prv_state.layer.restriction.state = gStmLayoutNoNone; g_prv_state.layer.apps.state = gStmLayoutNoNone; g_prv_state.layer.homescreen.state = gStmLayoutNoNone; + g_prv_state.trans_gear.state = gStmTransGearStateNoN; g_prv_state.parking_brake.state = gStmParkingBrakeStateNoOn; g_prv_state.accel_pedal.state = gStmAccelPedalStateNoOff; g_prv_state.car.state = gStmCarStateNoStop; @@ -129,7 +139,7 @@ void stmInitialize() { int stmTransitionState(int event, stm_state_t* state) { int event_no, category_no, area_no; int restriction_state, apps_state; - int parking_brake_state, accel_pedal_state, car_state, lamp_state; + int trans_gear_state, parking_brake_state, accel_pedal_state, car_state, lamp_state; event_no = event & STM_MSK_EVT_NO; category_no = event & STM_MSK_CTG_NO; @@ -140,21 +150,23 @@ int stmTransitionState(int event, stm_state_t* state) { // Get previous state restriction_state = g_prv_state.layer.restriction.state; - apps_state = g_prv_state.layer.apps.state; - parking_brake_state = g_prv_state.parking_brake.state; - accel_pedal_state = g_prv_state.accel_pedal.state; - car_state = g_prv_state.car.state; - lamp_state = g_prv_state.lamp.state; + apps_state = g_prv_state.layer.apps.state; + trans_gear_state = g_prv_state.trans_gear.state; + parking_brake_state = g_prv_state.parking_brake.state; + accel_pedal_state = g_prv_state.accel_pedal.state; + car_state = g_prv_state.car.state; + lamp_state = g_prv_state.lamp.state; // Clear flags - g_crr_state.layer.on_screen.is_changed = STM_FALSE; + g_crr_state.layer.on_screen.is_changed = STM_FALSE; g_crr_state.layer.restriction.is_changed = STM_FALSE; - g_crr_state.layer.apps.is_changed = STM_FALSE; - g_crr_state.layer.homescreen.is_changed = STM_FALSE; + g_crr_state.layer.apps.is_changed = STM_FALSE; + g_crr_state.layer.homescreen.is_changed = STM_FALSE; + g_crr_state.trans_gear.is_changed = STM_FALSE; g_crr_state.parking_brake.is_changed = STM_FALSE; - g_crr_state.accel_pedal.is_changed = STM_FALSE; - g_crr_state.car.is_changed = STM_FALSE; - g_crr_state.lamp.is_changed = STM_FALSE; + g_crr_state.accel_pedal.is_changed = STM_FALSE; + g_crr_state.car.is_changed = STM_FALSE; + g_crr_state.lamp.is_changed = STM_FALSE; switch (event_no) { case STM_EVT_NO_ACTIVATE: @@ -362,6 +374,18 @@ int stmTransitionState(int event, stm_state_t* state) { break; } break; + case STM_EVT_NO_TRANS_GEAR_N: + if (gStmTransGearStateNoN != trans_gear_state) { + g_crr_state.trans_gear.state = gStmTransGearStateNoN; + g_crr_state.trans_gear.is_changed = STM_TRUE; + } + break; + case STM_EVT_NO_TRANS_GEAR_NOT_N: + if (gStmTransGearStateNoNotN != trans_gear_state) { + g_crr_state.trans_gear.state = gStmTransGearStateNoNotN; + g_crr_state.trans_gear.is_changed = STM_TRUE; + } + break; case STM_EVT_NO_PARKING_BRAKE_OFF: if (gStmParkingBrakeStateNoOff != parking_brake_state) { g_crr_state.parking_brake.state = gStmParkingBrakeStateNoOff; @@ -404,10 +428,17 @@ int stmTransitionState(int event, stm_state_t* state) { } // Set car state +#if 1 // FOR ALS if (g_crr_state.parking_brake.is_changed || g_crr_state.accel_pedal.is_changed) { if ((gStmParkingBrakeStateNoOff == g_crr_state.parking_brake.state) && (gStmAccelPedalStateNoOn == g_crr_state.accel_pedal.state)){ +#else + if (g_crr_state.parking_brake.is_changed + || g_crr_state.trans_gear.is_changed) { + if ((gStmParkingBrakeStateNoOff == g_crr_state.parking_brake.state) + && (gStmTransGearStateNoNotN == g_crr_state.trans_gear.state)){ +#endif if (gStmCarStateNoRun != car_state) { // Car state is changed stop -> run g_crr_state.car.state = gStmCarStateNoRun; |