blob: d4aeaa26913df2988667f6053d3bf074336017d8 (
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
|
/**********************************************************************************************************************
*
* Copyright (C) 2017 BMW AG
*
* Interface definition for NodeStateManager CommonAPI interface
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
**********************************************************************************************************************/
package org.genivi
<**
@author : Alexander Wenzel
**>
typeCollection NodeStateManagerTypes {
version {
major 1
minor 0
}
array NsmDataTypeArray of UInt8
<**
@description :
The enumeration defines the different values for the application mode.
Each possible value will indicate that a different level of functionality is expected to be provided in the current and subsequent lifecycles.
This value will be used to define the "run level" that systemd should enable.
The values shown in this list are those that are mandatory for the Platform but it will be possible for the product to extend the list as needed by rebuilding the Node State Manager
**>
enumeration NsmApplicationMode_e {
NsmApplicationMode_NotSet
NsmApplicationMode_Parking
NsmApplicationMode_Factory
NsmApplicationMode_Transport
NsmApplicationMode_Normal
NsmApplicationMode_Swl
NsmApplicationMode_Last
}
<**
@description :
The constant string array defines the names of the sessions which are mandatory within the Platform. The strings defined here are used as first parameter for filtered registration to the signal ‘SessionStateChanged’.
A separate method is provided for adding new sessions dynamically to the list of sessions monitored and distributed by the NSM
**>
enumeration NsmCoreSessionName_e {
<**
@description : This session will be used by the Diagnosis SW to indicate the status of authenticated Diagnosis sessions.
**>
DiagnosisSession
<**
@description : This is used by certain OEM's and will also need to be a wake-up reason as it defines we start to a point where we can control the HEVAC
**>
HEVACSession
<**
@description :
This is an open session state that can be used differently for different products.
Traditionally it is expected that this session state will be set by the HMI when they are completely running and all graphics have been rendered on the appropriate layer.
This could for instance be used to determine when to enable the display or to switch from a Splashscreen to the real HMI to ensure that the user does not see the HMI before it is completely ready.
**>
HmiActiveSession
<**
@description : This session will be true/active when there is Network Activity and the Head Unit is in a user perceived on state and therefore is directly reliant on the Network.
**>
NetworkActiveSession
<**
@description : This session will be true/active when there is Network Activity but the Head Unit is in a user perceived off state and therefore is not directly using the Network
**>
NetworkPassiveSession
<**
@description : This is a product decision but it is likely that the PDC active will overrule a Poor and non critical failure.
**>
PDCSession
<**
@description : Permanent/Entertainment mode is normally active when the user has started the target via the Power On button and clamp state is not active. This mode would normally allow the target to run for a configurable period of time before an automatic shutdown will occur.
**>
PermanentModeSession
<**
@description : Indicates that a phone call is in progress and would normally delay the NSM from delaying the system shutdown
**>
PhoneSession
<**
@description : This is a product decision but it is likely that the RVC active will overrule a Poor and non critical failure
**>
RVCSession
<**
@description : When SWL is in progress we would need to handle reboot requests and recovery requests differently
**>
SWLSession
<**
@description : This session will be used by the Node Resource Manager to indicate that we are in a low memory state. Responsible applications can register for this event and reduce their memory overheads
**>
MemoryLowSession
}
<**
@description : This enum defines the different data available within the NSM and will be used by the NSMc when requesting to read data
**>
enumeration NsmDataType_e {
NsmDataType_AppMode
NsmDataType_NodeState
NsmDataType_RestartReason
NsmDataType_SessionState
NsmDataType_ShutdownReason
NsmDataType_BootMode
NsmDataType_RunningReason
NsmDataType_RegisterSession
NsmDataType_UnRegisterSession
}
<**
@description :
The enumeration defines the different error level used as return values
The values shown in this list are those that are mandatory for the Platform but it will be possible for the product to extend the list as needed by rebuilding the Node State Manager
**>
enumeration NsmErrorStatus_e {
NsmErrorStatus_NotSet
NsmErrorStatus_Ok
NsmErrorStatus_Error
NsmErrorStatus_Dbus
NsmErrorStatus_Internal
NsmErrorStatus_Parameter
NsmErrorStatus_WrongSession
NsmErrorStatus_ResponsePending
NsmErrorStatus_WrongClient
NsmErrorStatus_Last
}
<**
@description :
This enumeration defines the different node states. There is only one node state active at the same time. The NodeState system itself and other system components need to know the NodeState to decide whether certain actions can be performed in the current state.
The values shown in this list are those that are mandatory for the Platform but it will be possible for the product to extend the list as needed by rebuilding the Node State Manager
**>
enumeration NsmNodeState_e {
NsmNodeState_NotSet
NsmNodeState_StartUp
NsmNodeState_BaseRunning
NsmNodeState_LucRunning
NsmNodeState_FullyRunning
NsmNodeState_FullyOperational
NsmNodeState_ShuttingDown
NsmNodeState_ShutdownDelay
NsmNodeState_FastShutdown
NsmNodeState_DegradedPower
NsmNodeState_Shutdown
NsmNodeState_Resume
NsmNodeState_Last
}
<**
@description :
The enumeration defines the different restart reasons.
The restart reason will only be updated by the Node State Manager during the system startup phase. The NSM will use the value that it stored persistently in the previous lifecycle when its interface RequestNodeRestart was called.
The values shown in this list are those that are mandatory for the Platform but it will be possible for the product to extend the list as needed by rebuilding the Node State Manager
**>
enumeration NsmRestartReason_e {
NsmRestartReason_NotSet
NsmRestartReason_ApplicationFailure
NsmRestartReason_Diagnosis
NsmRestartReason_Swl
NsmRestartReason_User
NsmRestartReason_RemoteSwl
NsmRestartReason_FactoryTest
NsmRestartReason_Application
NsmRestartReason_OverTemperature
NsmRestartReason_Last
}
enumeration NsmRunningReason_e {
NsmRunningReason_NotSet
NsmRunningReason_WakeupCan
NsmRunningReason_WakeupMediaEject
NsmRunningReason_WakeupMediaInsertion
NsmRunningReason_WakeupHevac
NsmRunningReason_WakeupPhone
NsmRunningReason_WakeupPowerOnButton
NsmRunningReason_StartupFstp
NsmRunningReason_StartupSwitchToPower
NsmRunningReason_RestartSwRequest
NsmRunningReason_RestartInternalHealth
NsmRunningReason_RestartExternalHealth
NsmRunningReason_RestartUnexpected
NsmRunningReason_RestartUser
NsmRunningReason_Unknown
NsmRunningReason_WakeupEthernet
NsmRunningReason_Bootloader
NsmRunningReason_RemoteUpdate
NsmRunningReason_SystemReset
NsmRunningReason_SystemHardReset
NsmRunningReason_WatchdogReset
NsmRunningReason_RseEject
NsmRunningReason_RseButtonLeft
NsmRunningReason_RseButtonRight
NsmRunningReason_PlatformEnd
}
<**
@description : This can be used to identify, where needed, the car seat that is applicable for the data item being referenced
**>
enumeration NsmSeat_e {
NsmSeat_NotSet
NsmSeat_Driver
NsmSeat_CoDriver
NsmSeat_Rear1
NsmSeat_Rear2
NsmSeat_Rear3
NsmSeat_Last
}
<**
@description : The enumeration defines the currently foreseen session states
**>
enumeration NsmSessionState_e {
NsmSessionState_Unregistered
NsmSessionState_Inactive
NsmSessionState_Active
}
<**
@description :
The enumeration defines the different shutdown reasons.
The Node State Manager will update shutdown reason based on Lifecycle events in the system and will store it persistently for anyone interested in the value in the next lifecycle
The values shown in this list are those that are mandatory for the Platform but it will be possible for the product to extend the list as needed by rebuilding the Node State Manager
**>
enumeration NsmShutdownReason_e {
NsmShutdownReason_NotSet
NsmShutdownReason_Normal
NsmShutdownReason_SupplyBad
NsmShutdownReason_SupplyPoor
NsmShutdownReason_ThermalBad
NsmShutdownReason_ThermalPoor
NsmShutdownReason_SwlNotActive
NsmShutdownReason_Last
}
enumeration NsmShutdownType_e {
NsmShutdownTypeNot = 0
NsmShutdownTypeNormal = 1
NsmShutdownTypeFast = 2
NsmShutdownTypeParallel = 4
NsmShutdownTypeRunup = 8
}
}
|