aboutsummaryrefslogtreecommitdiffstats
path: root/src/policy_manager/zipc/dummy_stm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/policy_manager/zipc/dummy_stm.c')
-rw-r--r--src/policy_manager/zipc/dummy_stm.c68
1 files changed, 46 insertions, 22 deletions
diff --git a/src/policy_manager/zipc/dummy_stm.c b/src/policy_manager/zipc/dummy_stm.c
index a7d7b67..fc92c3e 100644
--- a/src/policy_manager/zipc/dummy_stm.c
+++ b/src/policy_manager/zipc/dummy_stm.c
@@ -12,7 +12,9 @@ const char* gStmEventName[] = {
"accel_pedal_on",
"timer_expired",
"lamp_off",
- "lamp_on"
+ "lamp_on",
+ "lightstatus_brake_off",
+ "lightstatus_brake_on",
};
const int gStmEventNo[] = {
@@ -26,7 +28,9 @@ const int gStmEventNo[] = {
STM_EVT_NO_ACCEL_PEDAL_ON,
STM_EVT_NO_TIMER_EXPIRED,
STM_EVT_NO_LAMP_OFF,
- STM_EVT_NO_LAMP_ON
+ STM_EVT_NO_LAMP_ON,
+ STM_EVT_NO_LIGHTSTATUS_BRAKE_OFF,
+ STM_EVT_NO_LIGHTSTATUS_BRAKE_ON,
};
const char* gStmCategoryName[] = {
@@ -97,6 +101,11 @@ const char* gStmLampStateNo2Name[] = {
"lamp_on"
};
+const char* gStmLightstatusBrakeStateNo2Name[] = {
+ "lightstatus_brake_off",
+ "lightstatus_brake_on"
+};
+
const char* gStmLayoutNo2Name[] = {
"none",
"pu",
@@ -126,11 +135,12 @@ 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;
- g_prv_state.lamp.state = gStmLampStateNoOff;
+ g_prv_state.trans_gear.state = gStmTransGearStateNoN;
+ g_prv_state.lightstatus_brake.state = gStmLightstatusBrakeStateNoOn;
+ g_prv_state.accel_pedal.state = gStmAccelPedalStateNoOff;
+ g_prv_state.car.state = gStmCarStateNoStop;
+ g_prv_state.lamp.state = gStmLampStateNoOff;
+ g_prv_state.parking_brake.state = gStmParkingBrakeStateNoOn;
// Initialize current state
g_crr_state = g_prv_state;
@@ -139,7 +149,7 @@ void stmInitialize() {
int stmTransitionState(int event, stm_state_t* state) {
int event_no, category_no, area_no;
int restriction_state, apps_state;
- int trans_gear_state, parking_brake_state, accel_pedal_state, car_state, lamp_state;
+ int trans_gear_state, parking_brake_state, lightstatus_brake_state, accel_pedal_state, car_state, lamp_state;
event_no = event & STM_MSK_EVT_NO;
category_no = event & STM_MSK_CTG_NO;
@@ -151,22 +161,24 @@ 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;
- 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;
+ 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;
+ lightstatus_brake_state = g_prv_state.lightstatus_brake.state;
// Clear flags
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.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.trans_gear.is_changed = STM_FALSE;
+ g_crr_state.parking_brake.is_changed = STM_FALSE;
+ g_crr_state.lightstatus_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;
// Set car state
@@ -219,15 +231,27 @@ int stmTransitionState(int event, stm_state_t* state) {
g_crr_state.lamp.is_changed = STM_TRUE;
}
break;
+ case STM_EVT_NO_LIGHTSTATUS_BRAKE_OFF:
+ if (gStmLightstatusBrakeStateNoOff != lightstatus_brake_state) {
+ g_crr_state.lightstatus_brake.state = gStmLightstatusBrakeStateNoOff;
+ g_crr_state.lightstatus_brake.is_changed = STM_TRUE;
+ }
+ break;
+ case STM_EVT_NO_LIGHTSTATUS_BRAKE_ON:
+ if (gStmLightstatusBrakeStateNoOn != lightstatus_brake_state) {
+ g_crr_state.lightstatus_brake.state = gStmLightstatusBrakeStateNoOn;
+ g_crr_state.lightstatus_brake.is_changed = STM_TRUE;
+ }
+ break;
default:
// nop
break;
}
#if 1 // FOR ALS
- if (g_crr_state.parking_brake.is_changed
+ if (g_crr_state.lightstatus_brake.is_changed
|| g_crr_state.accel_pedal.is_changed) {
- if ((gStmParkingBrakeStateNoOff == g_crr_state.parking_brake.state)
+ if ((gStmLightstatusBrakeStateNoOff == g_crr_state.lightstatus_brake.state)
&& (gStmAccelPedalStateNoOn == g_crr_state.accel_pedal.state)){
#else
if (g_crr_state.parking_brake.is_changed
@@ -431,7 +455,7 @@ int stmTransitionState(int event, stm_state_t* state) {
// Set restriction layer
if (STM_CTG_NO_RESTRICTION == category_no) {
if (STM_EVT_NO_ACTIVATE == event_no) {
- if (gStmParkingBrakeStateNoOff == g_crr_state.parking_brake.state) {
+ if (gStmLightstatusBrakeStateNoOff == g_crr_state.lightstatus_brake.state) {
switch (area_no) {
case STM_ARA_NO_RESTRICTION_NORMAL:
switch (restriction_state) {
@@ -487,7 +511,7 @@ int stmTransitionState(int event, stm_state_t* state) {
}
}
else if (g_crr_state.layer.apps.is_changed) {
- if (gStmParkingBrakeStateNoOff == g_crr_state.parking_brake.state) {
+ if (gStmLightstatusBrakeStateNoOff == g_crr_state.lightstatus_brake.state) {
if (gStmLayoutNoM2 == g_crr_state.layer.apps.state) {
g_crr_state.layer.restriction.state = gStmLayoutNoRestrictionSplitSub;
g_crr_state.layer.restriction.is_changed = STM_TRUE;