diff options
author | 2018-05-21 19:58:50 +0900 | |
---|---|---|
committer | 2018-05-21 19:58:50 +0900 | |
commit | b4083090dc8bf7adaad23dc11d629be839c7b5cf (patch) | |
tree | b665d824226abb8a36d127a0429d20837bf186c7 /src/policy_manager/zipc | |
parent | bf19dc1568478b646959e3e0bd58c54814facfa6 (diff) |
Add lightstatus brake ON/OFF event
Change-Id: Id2c61fc6e102394f5ba08effe0cfac448b337176
Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
Diffstat (limited to 'src/policy_manager/zipc')
-rw-r--r-- | src/policy_manager/zipc/dummy_stm.c | 68 | ||||
-rw-r--r-- | src/policy_manager/zipc/dummy_stm.h | 33 |
2 files changed, 67 insertions, 34 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; diff --git a/src/policy_manager/zipc/dummy_stm.h b/src/policy_manager/zipc/dummy_stm.h index bb99af7..987bd00 100644 --- a/src/policy_manager/zipc/dummy_stm.h +++ b/src/policy_manager/zipc/dummy_stm.h @@ -24,17 +24,19 @@ #define STM_FALSE 0 // Event number -#define STM_EVT_NO_ACTIVATE 0x01 -#define STM_EVT_NO_DEACTIVATE 0x02 -#define STM_EVT_NO_TRANS_GEAR_N 0x03 -#define STM_EVT_NO_TRANS_GEAR_NOT_N 0x04 -#define STM_EVT_NO_PARKING_BRAKE_OFF 0x05 -#define STM_EVT_NO_PARKING_BRAKE_ON 0x06 -#define STM_EVT_NO_ACCEL_PEDAL_OFF 0x07 -#define STM_EVT_NO_ACCEL_PEDAL_ON 0x08 -#define STM_EVT_NO_TIMER_EXPIRED 0x09 -#define STM_EVT_NO_LAMP_OFF 0x0A -#define STM_EVT_NO_LAMP_ON 0x0B +#define STM_EVT_NO_ACTIVATE 0x01 +#define STM_EVT_NO_DEACTIVATE 0x02 +#define STM_EVT_NO_TRANS_GEAR_N 0x03 +#define STM_EVT_NO_TRANS_GEAR_NOT_N 0x04 +#define STM_EVT_NO_PARKING_BRAKE_OFF 0x05 +#define STM_EVT_NO_PARKING_BRAKE_ON 0x06 +#define STM_EVT_NO_ACCEL_PEDAL_OFF 0x07 +#define STM_EVT_NO_ACCEL_PEDAL_ON 0x08 +#define STM_EVT_NO_TIMER_EXPIRED 0x09 +#define STM_EVT_NO_LAMP_OFF 0x0A +#define STM_EVT_NO_LAMP_ON 0x0B +#define STM_EVT_NO_LIGHTSTATUS_BRAKE_OFF 0x0C +#define STM_EVT_NO_LIGHTSTATUS_BRAKE_ON 0x0D // Category number #define STM_CTG_NO_HOMESCREEN 0x0100 @@ -61,7 +63,7 @@ #define STM_MSK_ARA_NO 0xFF0000 // Number of events, categories and areas -#define STM_NUM_EVT 11 +#define STM_NUM_EVT 13 #define STM_NUM_CTG 7 #define STM_NUM_ARA 8 @@ -91,6 +93,11 @@ enum stm_lamp_state_ { gStmLampStateNoOn }; +enum stm_lightstatus_brake_state_ { + gStmLightstatusBrakeStateNoOff = 0, + gStmLightstatusBrakeStateNoOn +}; + enum stm_layout_ { gStmLayoutNoNone = 0, gStmLayoutNoPu, @@ -121,6 +128,7 @@ extern const char* gStmAccelPedalStateNo2Name[]; extern const char* gStmCarStateNo2Name[]; extern const char* gStmLampStateNo2Name[]; extern const char* gStmLayoutNo2Name[]; +extern const char* gStmLightstatusBrakeStateNo2Name[]; // Struct for state typedef struct stm_base_state_ { @@ -141,6 +149,7 @@ typedef struct { stm_base_state accel_pedal; stm_base_state car; stm_base_state lamp; + stm_base_state lightstatus_brake; stm_layer_state layer; } stm_state_t; |