+ // Set car state
+ switch (event_no) {
+ case STM_EVT_NO_TRANS_GEAR_N:
+ if (gStmTransGearStateNoN != trans_gear_state) {
+ g_crr_state.car_element[gStmCarElementNoTransGear].state = gStmTransGearStateNoN;
+ g_crr_state.car_element[gStmCarElementNoTransGear].changed = STM_TRUE;
+ }
+ break;
+ case STM_EVT_NO_TRANS_GEAR_NOT_N:
+ if (gStmTransGearStateNoNotN != trans_gear_state) {
+ g_crr_state.car_element[gStmCarElementNoTransGear].state = gStmTransGearStateNoNotN;
+ g_crr_state.car_element[gStmCarElementNoTransGear].changed = STM_TRUE;
+ }
+ break;
+ case STM_EVT_NO_PARKING_BRAKE_OFF:
+ if (gStmParkingBrakeStateNoOff != parking_brake_state) {
+ g_crr_state.car_element[gStmCarElementNoParkingBrake].state = gStmParkingBrakeStateNoOff;
+ g_crr_state.car_element[gStmCarElementNoParkingBrake].changed = STM_TRUE;
+ }
+ break;
+ case STM_EVT_NO_PARKING_BRAKE_ON:
+ if (gStmParkingBrakeStateNoOn != parking_brake_state) {
+ g_crr_state.car_element[gStmCarElementNoParkingBrake].state = gStmParkingBrakeStateNoOn;
+ g_crr_state.car_element[gStmCarElementNoParkingBrake].changed = STM_TRUE;
+ }
+ break;
+ case STM_EVT_NO_ACCEL_PEDAL_OFF:
+ if (gStmAccelPedalStateNoOff != accel_pedal_state) {
+ g_crr_state.car_element[gStmCarElementNoAccelPedal].state = gStmAccelPedalStateNoOff;
+ g_crr_state.car_element[gStmCarElementNoAccelPedal].changed = STM_TRUE;
+ }
+ break;
+ case STM_EVT_NO_ACCEL_PEDAL_ON:
+ if (gStmAccelPedalStateNoOn != accel_pedal_state) {
+ g_crr_state.car_element[gStmCarElementNoAccelPedal].state = gStmAccelPedalStateNoOn;
+ g_crr_state.car_element[gStmCarElementNoAccelPedal].changed = STM_TRUE;
+ }
+ break;
+ case STM_EVT_NO_LAMP_OFF:
+ if (gStmLampStateNoOff != lamp_state) {
+ g_crr_state.car_element[gStmCarElementNoLamp].state = gStmLampStateNoOff;
+ g_crr_state.car_element[gStmCarElementNoLamp].changed = STM_TRUE;
+ }
+ break;
+ case STM_EVT_NO_LAMP_ON:
+ if (gStmLampStateNoOn != lamp_state) {
+ g_crr_state.car_element[gStmCarElementNoLamp].state = gStmLampStateNoOn;
+ g_crr_state.car_element[gStmCarElementNoLamp].changed = STM_TRUE;
+ }
+ break;
+ case STM_EVT_NO_LIGHTSTATUS_BRAKE_OFF:
+ if (gStmLightstatusBrakeStateNoOff != lightstatus_brake_state) {
+ g_crr_state.car_element[gStmCarElementNoLightstatusBrake].state = gStmLightstatusBrakeStateNoOff;
+ g_crr_state.car_element[gStmCarElementNoLightstatusBrake].changed = STM_TRUE;
+ }
+ break;
+ case STM_EVT_NO_LIGHTSTATUS_BRAKE_ON:
+ if (gStmLightstatusBrakeStateNoOn != lightstatus_brake_state) {
+ g_crr_state.car_element[gStmCarElementNoLightstatusBrake].state = gStmLightstatusBrakeStateNoOn;
+ g_crr_state.car_element[gStmCarElementNoLightstatusBrake].changed = STM_TRUE;
+ }
+ break;
+ default:
+ // nop
+ break;
+ }
+
+#if 1 // FOR ALS
+ if (g_crr_state.car_element[gStmCarElementNoLightstatusBrake].changed
+ || g_crr_state.car_element[gStmCarElementNoAccelPedal].changed) {
+ if ((gStmLightstatusBrakeStateNoOff == g_crr_state.car_element[gStmCarElementNoLightstatusBrake].state)
+ && (gStmAccelPedalStateNoOn == g_crr_state.car_element[gStmCarElementNoAccelPedal].state)){
+#else
+ if (g_crr_state.car_element[gStmCarElementNoParkingBrake].changed
+ || g_crr_state.car_element[gStmCarElementNoTransGear].changed) {
+ if ((gStmParkingBrakeStateNoOff == g_crr_state.car_element[gStmCarElementNoParkingBrake].state)
+ && (gStmTransGearStateNoNotN == g_crr_state.car_element[gStmCarElementNoTransGear].state)){
+#endif
+ if (gStmRunningNoRun != car_state) {
+ // Car state is changed stop -> run
+ g_crr_state.car_element[gStmCarElementNoRunning].state = gStmRunningNoRun;
+ g_crr_state.car_element[gStmCarElementNoRunning].changed = STM_TRUE;
+ }
+ }
+ else {
+ if (gStmRunningNoStop != car_state) {
+ // Car state is changed run -> stop
+ g_crr_state.car_element[gStmCarElementNoRunning].state = gStmRunningNoStop;
+ g_crr_state.car_element[gStmCarElementNoRunning].changed = STM_TRUE;
+ }
+ }
+ }
+
+ // Set restriction mode
+ if ((STM_EVT_NO_RESTRICTION_MODE_ON == event_no)
+ && (gStmRestrictionModeStateNoOn != restriction_mode_state)) {
+ HMI_DEBUG("wm:pm:stm", "Restriction mode OFF -> ON");
+
+ // Restriction mode is changed OFF -> ON
+ g_crr_state.car_element[gStmCarElementNoRestrictionMode].state = gStmRestrictionModeStateNoOn;
+ g_crr_state.car_element[gStmCarElementNoRestrictionMode].changed = STM_TRUE;
+
+ // Update on screen layer
+ g_prv_on_screen_state_car_stop = on_screen_state;
+ g_crr_state.layer[gStmLayerNoOnScreen].state = gStmLayoutNoNone;
+ g_crr_state.layer[gStmLayerNoOnScreen].changed = STM_TRUE;
+
+ // Update restriction layer
+ g_prv_restriction_state_car_stop = restriction_state;
+ g_crr_state.layer[gStmLayerNoRestriction].state = gStmLayoutNoNone;
+ g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE;
+
+ // Update apps layer
+ g_prv_apps_state_car_stop = apps_state;
+ if ((STM_TRUE == g_map_is_activated)
+ && (gStmLayoutNoSystem != apps_state)) {
+ g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoM1;
+ g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE;
+ }
+ }
+ else if ((STM_EVT_NO_RESTRICTION_MODE_OFF == event_no)
+ && (gStmRestrictionModeStateNoOff != restriction_mode_state)) {
+ HMI_DEBUG("wm:pm:stm", "Restriction mode ON -> OFF");
+
+ // Restriction mode is changed ON -> OFF
+ g_crr_state.car_element[gStmCarElementNoRestrictionMode].state = gStmRestrictionModeStateNoOff;
+ g_crr_state.car_element[gStmCarElementNoRestrictionMode].changed = STM_TRUE;
+
+ // Update on screen layer
+ g_crr_state.layer[gStmLayerNoOnScreen].state = g_prv_on_screen_state_car_stop;
+ g_crr_state.layer[gStmLayerNoOnScreen].changed = STM_TRUE;
+
+ // Update restriction layer
+ g_crr_state.layer[gStmLayerNoRestriction].state = g_prv_restriction_state_car_stop;
+ g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE;
+
+ // Update apps layer
+ if (STM_TRUE == g_map_is_activated) {
+ g_crr_state.layer[gStmLayerNoApps].state = g_prv_apps_state_car_stop;
+ g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE;
+ }
+ }
+
+ // Set apps/homescreen layer