aboutsummaryrefslogtreecommitdiffstats
path: root/src/policy_manager/zipc/dummy_stm.h
blob: ae438dbe3ad90779f5c4709d359f5a09af008b05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*
 * Copyright (c) 2018 TOYOTA MOTOR CORPORATION
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef TMCAGLWM_DUMMY_STM_HPP
#define TMCAGLWM_DUMMY_STM_HPP

// TODO: This file should be existed in STM

//
#define STM_TRUE 1
#define STM_FALSE 0

// Event number
#define STM_EVT_NO_ACTIVATE          0x01
#define STM_EVT_NO_DEACTIVATE        0x02
#define STM_EVT_NO_PARKING_BRAKE_OFF 0x03
#define STM_EVT_NO_PARKING_BRAKE_ON  0x04
#define STM_EVT_NO_CAR_STOP          0x05
#define STM_EVT_NO_CAR_RUN           0x06
#define STM_EVT_NO_TIMER_EXPIRED     0x07
#define STM_EVT_NO_LAMP_OFF          0x08
#define STM_EVT_NO_LAMP_ON           0x09

// Category number
#define STM_CTG_NO_HOMESCREEN   0x0100
#define STM_CTG_NO_MAP          0x0200
#define STM_CTG_NO_GENERAL      0x0300
#define STM_CTG_NO_SPLITABLE    0x0400
#define STM_CTG_NO_POPUP        0x0500
#define STM_CTG_NO_SYSTEM_ALERT 0x0600

// Area number
#define STM_ARA_NO_FULL       0x010000
#define STM_ARA_NO_NORMAL     0x020000
#define STM_ARA_NO_SPLIT_MAIN 0x030000
#define STM_ARA_NO_SPLIT_SUB  0x040000
#define STM_ARA_NO_ON_SCREEN  0x050000

// Mask
#define STM_MSK_EVT_NO 0x0000FF
#define STM_MSK_CTG_NO 0x00FF00
#define STM_MSK_ARA_NO 0xFF0000

// Number of events, categories and areas
#define STM_NUM_EVT 9
#define STM_NUM_CTG 6
#define STM_NUM_ARA 5

// Enum for state
enum stm_parking_brake_state_ {
    gStmParkingBrakeStateNoOff = 0,
    gStmParkingBrakeStateNoOn
};

enum stm_car_state_ {
    gStmCarStateNoStop = 0,
    gStmCarStateNoRun
};

enum stm_lamp_state_ {
    gStmLampStateNoOff = 0,
    gStmLampStateNoOn
};

enum stm_layout_ {
    gStmLayoutNoNone = 0,
    gStmLayoutNoPu,
    gStmLayoutNoSa,
    gStmLayoutNoM1,
    gStmLayoutNoM2,
    gStmLayoutNoMf,
    gStmLayoutNoS1,
    gStmLayoutNoS2,
    gStmLayoutNoG,
    gStmLayoutNoHs
};


extern const char* gStmEventName[];
extern const int gStmEventNo[];
extern const char* gStmCategoryName[];
extern const int gStmCategoryNo[];
extern const char* gStmAreaName[];
extern const int gStmAreaNo[];

// String for state
extern const char* gStmParkingBrakeStateNo2Name[];
extern const char* gStmCarStateNo2Name[];
extern const char* gStmLampStateNo2Name[];
extern const char* gStmLayoutNo2Name[];

// Struct for state
typedef struct stm_base_state_ {
    int is_changed;
    int state;
} stm_base_state;

typedef struct stm_layer_state_ {
    stm_base_state on_screen;
    stm_base_state apps;
    stm_base_state homescreen;
} stm_layer_state;

typedef struct {
    stm_base_state parking_brake;
    stm_base_state car;
    stm_base_state lamp;
    stm_layer_state layer;
} stm_state_t;

int stmTransitionState(int event_no, stm_state_t* state);


#endif  // TMCAGLWM_DUMMY_STM_HPP