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
27 #define STM_EVT_NO_ACTIVATE 0x01
28 #define STM_EVT_NO_DEACTIVATE 0x02
29 #define STM_EVT_NO_TRANS_GEAR_N 0x03
30 #define STM_EVT_NO_TRANS_GEAR_NOT_N 0x04
31 #define STM_EVT_NO_PARKING_BRAKE_OFF 0x05
32 #define STM_EVT_NO_PARKING_BRAKE_ON 0x06
33 #define STM_EVT_NO_ACCEL_PEDAL_OFF 0x07
34 #define STM_EVT_NO_ACCEL_PEDAL_ON 0x08
35 #define STM_EVT_NO_TIMER_EXPIRED 0x09
36 #define STM_EVT_NO_LAMP_OFF 0x0A
37 #define STM_EVT_NO_LAMP_ON 0x0B
38 #define STM_EVT_NO_LIGHTSTATUS_BRAKE_OFF 0x0C
39 #define STM_EVT_NO_LIGHTSTATUS_BRAKE_ON 0x0D
42 #define STM_CTG_NO_HOMESCREEN 0x0100
43 #define STM_CTG_NO_MAP 0x0200
44 #define STM_CTG_NO_GENERAL 0x0300
45 #define STM_CTG_NO_SPLITABLE 0x0400
46 #define STM_CTG_NO_POPUP 0x0500
47 #define STM_CTG_NO_SYSTEM_ALERT 0x0600
48 #define STM_CTG_NO_RESTRICTION 0x0700
51 #define STM_ARA_NO_FULL 0x010000
52 #define STM_ARA_NO_NORMAL 0x020000
53 #define STM_ARA_NO_SPLIT_MAIN 0x030000
54 #define STM_ARA_NO_SPLIT_SUB 0x040000
55 #define STM_ARA_NO_ON_SCREEN 0x050000
56 #define STM_ARA_NO_RESTRICTION_NORMAL 0x060000
57 #define STM_ARA_NO_RESTRICTION_SPLIT_MAIN 0x070000
58 #define STM_ARA_NO_RESTRICTION_SPLIT_SUB 0x080000
61 #define STM_MSK_EVT_NO 0x0000FF
62 #define STM_MSK_CTG_NO 0x00FF00
63 #define STM_MSK_ARA_NO 0xFF0000
65 // Number of events, categories and areas
66 #define STM_NUM_EVT 13
71 enum stm_trans_gear_state_ {
72 gStmTransGearStateNoN = 0,
73 gStmTransGearStateNoNotN
76 enum stm_parking_brake_state_ {
77 gStmParkingBrakeStateNoOff = 0,
78 gStmParkingBrakeStateNoOn
81 enum stm_accel_pedal_state_ {
82 gStmAccelPedalStateNoOff = 0,
83 gStmAccelPedalStateNoOn
87 gStmCarStateNoStop = 0,
91 enum stm_lamp_state_ {
92 gStmLampStateNoOff = 0,
96 enum stm_lightstatus_brake_state_ {
97 gStmLightstatusBrakeStateNoOff = 0,
98 gStmLightstatusBrakeStateNoOn
102 gStmLayoutNoNone = 0,
112 gStmLayoutNoRestriction,
113 gStmLayoutNoRestrictionSplitMain,
114 gStmLayoutNoRestrictionSplitSub,
118 extern const char* gStmEventName[];
119 extern const int gStmEventNo[];
120 extern const char* gStmCategoryName[];
121 extern const int gStmCategoryNo[];
122 extern const char* gStmAreaName[];
123 extern const int gStmAreaNo[];
126 extern const char* gStmParkingBrakeStateNo2Name[];
127 extern const char* gStmAccelPedalStateNo2Name[];
128 extern const char* gStmCarStateNo2Name[];
129 extern const char* gStmLampStateNo2Name[];
130 extern const char* gStmLayoutNo2Name[];
131 extern const char* gStmLightstatusBrakeStateNo2Name[];
134 typedef struct stm_base_state_ {
139 typedef struct stm_layer_state_ {
140 stm_base_state on_screen;
141 stm_base_state restriction;
143 stm_base_state homescreen;
147 stm_base_state trans_gear;
148 stm_base_state parking_brake;
149 stm_base_state accel_pedal;
152 stm_base_state lightstatus_brake;
153 stm_layer_state layer;
157 void stmInitialize();
158 int stmTransitionState(int event_no, stm_state_t* state);
161 #endif // TMCAGLWM_DUMMY_STM_HPP