2 * Copyright (c) 2018 TOYOTA MOTOR CORPORATION
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef TMCAGLWM_DUMMY_STM_HPP
18 #define TMCAGLWM_DUMMY_STM_HPP
20 // TODO: This file should be existed in STM
30 STM_EVT_NO_DEACTIVATE,
31 STM_EVT_NO_TRANS_GEAR_N,
32 STM_EVT_NO_TRANS_GEAR_NOT_N,
33 STM_EVT_NO_PARKING_BRAKE_OFF,
34 STM_EVT_NO_PARKING_BRAKE_ON,
35 STM_EVT_NO_ACCEL_PEDAL_OFF,
36 STM_EVT_NO_ACCEL_PEDAL_ON,
37 STM_EVT_NO_TIMER_EXPIRED,
40 STM_EVT_NO_LIGHTSTATUS_BRAKE_OFF,
41 STM_EVT_NO_LIGHTSTATUS_BRAKE_ON,
42 STM_EVT_NO_RESTRICTION_MODE_OFF,
43 STM_EVT_NO_RESTRICTION_MODE_ON,
47 STM_EVT_NO_MIN = STM_EVT_NO_NONE,
48 STM_EVT_NO_MAX = STM_EVT_NO_NUM - 1,
54 STM_CTG_NO_HOMESCREEN,
59 STM_CTG_NO_SYSTEM_ALERT,
60 STM_CTG_NO_RESTRICTION,
65 STM_CTG_NO_MIN = STM_CTG_NO_NONE,
66 STM_CTG_NO_MAX = STM_CTG_NO_NUM - 1,
74 STM_AREA_NO_SPLIT_MAIN,
75 STM_AREA_NO_SPLIT_SUB,
77 STM_AREA_NO_RESTRICTION_NORMAL,
78 STM_AREA_NO_RESTRICTION_SPLIT_MAIN,
79 STM_AREA_NO_RESTRICTION_SPLIT_SUB,
83 STM_AREA_NO_MIN = STM_AREA_NO_NONE,
84 STM_AREA_NO_MAX = STM_AREA_NO_NUM - 1,
87 #define CREATE_EVENT_ID(evt, ctg, area) \
88 ((evt) | ((ctg) << 8) | ((area) << 16))
90 #define GET_EVENT_FROM_ID(id) \
93 #define GET_CATEGORY_FROM_ID(id) \
96 #define GET_AREA_FROM_ID(id) \
100 enum stm_trans_gear_state_ {
101 gStmTransGearStateNoN = 0,
102 gStmTransGearStateNoNotN
105 enum stm_parking_brake_state_ {
106 gStmParkingBrakeStateNoOff = 0,
107 gStmParkingBrakeStateNoOn
110 enum stm_accel_pedal_state_ {
111 gStmAccelPedalStateNoOff = 0,
112 gStmAccelPedalStateNoOn
115 enum stm_car_state_ {
116 gStmRunningNoStop = 0,
120 enum stm_lamp_state_ {
121 gStmLampStateNoOff = 0,
125 enum stm_lightstatus_brake_state_ {
126 gStmLightstatusBrakeStateNoOff = 0,
127 gStmLightstatusBrakeStateNoOn
130 enum stm_restriction_mode_state_ {
131 gStmRestrictionModeStateNoOff = 0,
132 gStmRestrictionModeStateNoOn
136 gStmLayoutNoNone = 0,
147 gStmLayoutNoRstSplMain,
148 gStmLayoutNoRstSplSub,
153 gStmLayoutNoMin = gStmLayoutNoNone,
154 gStmLayoutNoMax = gStmLayoutNoNum - 1,
158 gStmLayerNoHomescreen = 0,
160 gStmLayerNoRestriction,
165 gStmLayerNoMin = gStmLayerNoHomescreen,
166 gStmLayerNoMax = gStmLayerNoNum - 1,
169 enum stm_car_element_ {
170 gStmCarElementNoTransGear = 0,
171 gStmCarElementNoParkingBrake,
172 gStmCarElementNoAccelPedal,
173 gStmCarElementNoRunning,
174 gStmCarElementNoLamp,
175 gStmCarElementNoLightstatusBrake,
176 gStmCarElementNoRestrictionMode,
180 gStmCarElementNoMin = gStmCarElementNoTransGear,
181 gStmCarElementNoMax = gStmCarElementNoNum - 1,
185 extern const char* gStmEventName[];
186 extern const char* gStmCategoryName[];
187 extern const char* gStmAreaName[];
188 extern const char* gStmLayoutName[];
189 extern const char* gStmLayerName[];
190 extern const char* gStmCarElementName[];
191 extern const char** gStmCarStateNameList[];
194 typedef struct stm_base_state_ {
200 stm_base_state car_element[gStmCarElementNoNum];
201 stm_base_state layer[gStmLayerNoNum];
205 void stmInitialize();
206 int stmTransitionState(int event_no, stm_state_t* state);
209 #endif // TMCAGLWM_DUMMY_STM_HPP