16.4. Simple Vehicle State Machine - SimpVsm
Id |
SimpVsm |
Version |
main |
Title |
Simple Vehicle State Machine |
System |
Vehicle State |
Document Type |
Application Software Component Specification Preview |
16.4.1. Overview
The Simple Vehicle State Machine (SimpVsm) manages the overall state of the vehicle, transitioning between different states such as Sleep, Idle, Ready, and Maintenance based on various input conditions. It coordinates the power state of vehicle subsystems.
16.4.2. Functions
Title |
Description |
|
|---|---|---|
1 |
State Management |
Manages transitions between the main vehicle states of Sleep, Idle, Ready and Maintenance based on input conditions from vehicle subsystems and driver inputs. |
2 |
Substate Management |
Manages transitions between substates within the main Sleep state, such as Fully Sleep and Invisible Awake, to enable progressive wake up and sleep of vehicle systems. |
3 |
Timer Management |
Manages various timers that control state transitions, such as the Sleep Timer, Driver Absence Timer, Park Timer and Low Battery Timer. |
4 |
Initialization |
Determines the initial vehicle state on power up based on the reason for the last shutdown and input conditions. |
16.4.3. Ports
Id |
Direction |
Data Type |
Dimensions |
Unit |
Description |
Keywords |
|
|---|---|---|---|---|---|---|---|
1 |
BrkPedlPsd |
Incoming |
boolean |
[1] |
Brake Pedal Pressed |
||
2 |
BrkPedlPsdVld |
Incoming |
boolean |
[1] |
Brake Pedal Pressed Valid |
||
3 |
HstHwRdy |
Incoming |
boolean |
[1] |
Host Hardware Ready |
||
4 |
ShiftShiftPosnAcv |
Incoming |
boolean |
[1] |
Shift Shift Position Active |
||
5 |
GearShiftSt |
Incoming |
Enum: CmnenaGearSt |
[1] |
Gear Shift State |
||
6 |
GearShiftStVld |
Incoming |
boolean |
[1] |
Gear Shift State Valid |
||
7 |
ChrgPlugInp |
Incoming |
boolean |
[1] |
Charging Plug Input |
||
8 |
ChrgPlugInpVld |
Incoming |
boolean |
[1] |
Charging Plug Input Valid |
||
9 |
VehSpd |
Incoming |
single |
[1] |
kmh |
Vehicle Speed |
|
10 |
VehSpdVld |
Incoming |
boolean |
[1] |
Vehicle Speed Valid |
||
11 |
FullRcvryMod |
Incoming |
boolean |
[1] |
Full Recovery Mode |
||
12 |
FullRcvryModVld |
Incoming |
boolean |
[1] |
Full Recovery Mode Valid |
||
13 |
DoorOpenSt |
Incoming |
boolean |
[1] |
Door Open State |
||
14 |
DrvrDoorTchPnt |
Incoming |
boolean |
[1] |
Driver Door Touch Point |
||
15 |
HmiWakeUp |
Incoming |
boolean |
[1] |
Hmi Wake Up |
||
16 |
HmiWakeUpVld |
Incoming |
boolean |
[1] |
Hmi Wake Up Valid |
||
17 |
DrvrSeatOccpd |
Incoming |
boolean |
[1] |
Driver Seat Occupied |
||
18 |
OtaUpdReq |
Incoming |
Enum: CmnenaVehSt |
[1] |
Ota Update Request |
||
19 |
CenLockWakeReq |
Incoming |
boolean |
[1] |
Central Lock Wake Request |
||
20 |
DoorOpenStVld |
Incoming |
boolean |
[1] |
Door Open State Valid |
||
21 |
DrvrDoorTchPntVld |
Incoming |
boolean |
[1] |
Driver Door Touch Point Valid |
||
22 |
DrvrSeatOccpdVld |
Incoming |
boolean |
[1] |
Driver Seat Occupied Valid |
||
23 |
OtaUpdReqVld |
Incoming |
boolean |
[1] |
Ota Update Request Valid |
||
24 |
CenLockWakeReqVld |
Incoming |
boolean |
[1] |
Central Lock Wake Request Valid |
||
25 |
MntnReq |
Incoming |
Enum: CmnenaVehSt |
[1] |
Maintenance Request |
||
26 |
MntnReqVld |
Incoming |
boolean |
[1] |
Maintenance Request Valid |
||
27 |
FlatBadRcvryMod |
Incoming |
boolean |
[1] |
Flat Bad Recovery Mode |
||
28 |
FlatBadRcvryModVld |
Incoming |
boolean |
[1] |
Flat Bad Recovery Mode Valid |
||
29 |
LvTopUp |
Incoming |
boolean |
[1] |
Lv Top Up |
||
30 |
LvTopUpVld |
Incoming |
boolean |
[1] |
Lv Top Up Valid |
||
31 |
ChReq |
Incoming |
boolean |
[1] |
Charge Request |
||
32 |
ChReqVld |
Incoming |
boolean |
[1] |
Charge Request Valid |
||
33 |
ThermCdnReq |
Incoming |
boolean |
[1] |
Thermal Condition Request |
||
34 |
ThermCdnReqVld |
Incoming |
boolean |
[1] |
Thermal Condition Request Valid |
||
35 |
HvBatStorgReq |
Incoming |
boolean |
[1] |
Hv Battery Storage Request |
||
36 |
HvBatStorgReqVld |
Incoming |
boolean |
[1] |
Hv Battery Storage Request Valid |
||
37 |
VehAlrmReq |
Incoming |
boolean |
[1] |
Vehicle Alarm Request |
||
38 |
VehAlrmReqVld |
Incoming |
boolean |
[1] |
Vehicle Alarm Request Valid |
||
39 |
HzrdReq |
Incoming |
boolean |
[1] |
Hazard Request |
||
40 |
HzrdReqVld |
Incoming |
boolean |
[1] |
Hazard Request Valid |
||
41 |
HvBatPrecdnReq |
Incoming |
boolean |
[1] |
Hv Battery Precondition Request |
||
42 |
HvBatPrecdnReqVld |
Incoming |
boolean |
[1] |
Hv Battery Precondition Request Valid |
||
43 |
HvRdyVld |
Incoming |
boolean |
[1] |
Hv Ready Valid |
||
44 |
LvRdyVld |
Incoming |
boolean |
[1] |
Lv Ready Valid |
||
45 |
ChrgRdyVld |
Incoming |
boolean |
[1] |
Charging Ready Valid |
||
46 |
DtRdyVld |
Incoming |
boolean |
[1] |
Drivetrain Ready Valid |
||
47 |
BrkgRdyVld |
Incoming |
boolean |
[1] |
Braking Ready Valid |
||
48 |
SteerRdyVld |
Incoming |
boolean |
[1] |
Steering Ready Valid |
||
49 |
ThermRdyVld |
Incoming |
boolean |
[1] |
Thermal Ready Valid |
||
50 |
HvRdy |
Incoming |
boolean |
[1] |
Hv Ready |
||
51 |
LvRdy |
Incoming |
boolean |
[1] |
Lv Ready |
||
52 |
ChrgRdy |
Incoming |
boolean |
[1] |
Charging Ready |
||
53 |
DtRdy |
Incoming |
boolean |
[1] |
Drivetrain Ready |
||
54 |
BrkgRdy |
Incoming |
boolean |
[1] |
Braking Ready |
||
55 |
SteerRdy |
Incoming |
boolean |
[1] |
Steering Ready |
||
56 |
ThermRdy |
Incoming |
boolean |
[1] |
Thermal Ready |
||
57 |
ImobSt |
Incoming |
Enum: CmnenaLockSt |
[1] |
Immobilizer State |
||
58 |
ImobStVld |
Incoming |
boolean |
[1] |
Immobilizer State Valid |
||
59 |
VehLockSt |
Incoming |
Enum: CmnenaLockSt |
[1] |
Vehicle Lock State |
||
60 |
VehLockStVld |
Incoming |
boolean |
[1] |
Vehicle Lock State Valid |
||
61 |
LvFlatBat |
Incoming |
boolean |
[1] |
Lv Flat Battery |
||
62 |
LvFlatBatVld |
Incoming |
boolean |
[1] |
Lv Flat Battery Valid |
||
63 |
LvChrg |
Incoming |
boolean |
[1] |
Lv Charging |
||
64 |
LvChrgVld |
Incoming |
boolean |
[1] |
Lv Charging Valid |
||
65 |
BdShutDwnCorr |
Incoming |
boolean |
[1] |
Board Shut Down Correct |
||
66 |
BdShutDwnCorrVld |
Incoming |
boolean |
[1] |
Board Shut Down Correct Valid |
||
67 |
CrashVld |
Incoming |
boolean |
[1] |
Crash Valid |
||
68 |
Crash |
Incoming |
boolean |
[1] |
Crash |
||
69 |
DrvrAbscTmr |
Outgoing |
boolean |
[1] |
Driver Absence Timer |
||
70 |
ParkTmr |
Outgoing |
boolean |
[1] |
Park Timer |
||
71 |
SlpTmr |
Outgoing |
boolean |
[1] |
Sleep Timer |
||
72 |
LoBatTmr |
Outgoing |
boolean |
[1] |
Low Battery Timer |
||
73 |
St |
Outgoing |
Enum: CmnenaVehSt |
[1] |
State |
||
74 |
Awk2Rdy |
Outgoing |
boolean |
[1] |
Awake2 Ready |
||
75 |
Rdy2Awk |
Outgoing |
boolean |
[1] |
Ready2 Awake |
||
76 |
Rdy2AwkSpdCdn |
Outgoing |
boolean |
[1] |
Ready2 Awake Speed Condition |
||
77 |
Slp2Awk |
Outgoing |
boolean |
[1] |
Sleep2 Awake |
||
78 |
Slp2Mntn |
Outgoing |
boolean |
[1] |
Sleep2 Maintenance |
||
79 |
Mntn2FullSlp |
Outgoing |
boolean |
[1] |
Maintenance2 Full Sleep |
||
80 |
Mntn2InvblAwk |
Outgoing |
boolean |
[1] |
Maintenance2 Invisible Awake |
||
81 |
Awk2Slp |
Outgoing |
boolean |
[1] |
Awake2 Sleep |
||
82 |
Awk2Mntn |
Outgoing |
boolean |
[1] |
Awake2 Maintenance |
||
83 |
Mntn2Awk |
Outgoing |
boolean |
[1] |
Maintenance2 Awake |
||
84 |
FullSlp2InvblAwk |
Outgoing |
boolean |
[1] |
Full Sleep2 Invisible Awake |
||
85 |
InvblAwk2FullSlp |
Outgoing |
boolean |
[1] |
Invisible Awake2 Full Sleep |
||
86 |
Rdy2Slp |
Outgoing |
boolean |
[1] |
Ready2 Sleep |
||
87 |
AllSysRdyVld |
Outgoing |
boolean |
[1] |
All System Ready Valid |
||
88 |
AllSysRdy |
Outgoing |
boolean |
[1] |
All System Ready |
||
89 |
LoBatTmrCdn |
Outgoing |
boolean |
[1] |
Low Battery Timer Condition |
||
90 |
IniCdnDbg |
Outgoing |
uint8 |
[1] |
Initial Condition Debug |
16.4.4. Parameters
Id |
Data Type |
Dimensions |
Range |
Unit |
Description |
Keywords |
|
|---|---|---|---|---|---|---|---|
1 |
SmlvsmAwkTmr |
single |
[1,1] |
Min: 10, Max: 1000000 |
sec |
Wait time in Awake before transition to Sleep |
Smlvsm Awake Timer |
2 |
SmlvsmAwkToRdyDly |
single |
[1,1] |
Min: 0, Max: 60 |
sec |
Delay for Awake to Ready conditions. Set 0 to disable |
Smlvsm Awake To Ready Delay |
3 |
SmlvsmAwkToSlpChk |
boolean |
[1,6] |
Min: 0, Max: 1 |
Disable check trigger for Awake2Sleep |
Smlvsm Awake To Sleep Check |
|
4 |
SmlvsmAwkToSlpDly |
single |
[1,1] |
Min: 0, Max: 60 |
sec |
Delay for Awake to Sleep conditions. Set 0 to disable |
Smlvsm Awake To Sleep Delay |
5 |
SmlvsmBatStorgVldIgn |
boolean |
[1,1] |
Min: 0, Max: 1 |
Switch off validity check of HV Battery Storage for transition to fully sleep |
Smlvsm Battery Storage Valid Ignore |
|
6 |
SmlvsmBdIninFirst |
boolean |
[1,1] |
Min: 0, Max: 1 |
IF SimpleVSM_BoardInitFirst is 1, THEN VSM initialization based on board shut down status gets first priority |
Smlvsm Board Initialization First |
|
7 |
SmlvsmBdShutDwnStsOvrd |
uint8 |
[1,1] |
Min: 0, Max: 4 |
Board Shutdown status override: 0 - no override, |
Smlvsm Board Shut Down Status Override |
|
8 |
SmlvsmChkDi |
boolean |
[1,7] |
Min: 0, Max: 1 |
Disable check for ready to drive: 1st - HV, 2nd - LV, 3rd - Steering, 4th - Braking, 5th - Charging, 6th - Drivetraine, 7th - Thermal |
Smlvsm Check Disable |
|
9 |
SmlvsmDrvrAbsTmr |
single |
[1,1] |
Min: 10, Max: 1000000 |
sec |
Wait time in Ready before transition to awake when the driver presence is not detected |
Smlvsm Driver Abs Timer |
10 |
SmlvsmDrvrSeatSnsrIgn |
boolean |
[1,1] |
Min: 0, Max: 1 |
1 - Ignore driver seat mat sensor check, if it is not presented, 0 - check |
Smlvsm Driver Seat Sensor Ignore |
|
11 |
SmlvsmFullSlpToInvblAwkDly |
single |
[1,1] |
Min: 0, Max: 60 |
sec |
Delay for FullySleep to InvAwake conditions. Set 0 to disable |
Smlvsm Full Sleep To Invisible Awake Delay |
12 |
SmlvsmHvBatPrecdnReqVldIgn |
boolean |
[1,1] |
Min: 0, Max: 1 |
Switch off validity check of HVBPC Request for transition to fully sleep |
Smlvsm Hv Battery Precondition Request Valid Ignore |
|
13 |
SmlvsmHwChkIgn |
boolean |
[1,1] |
Min: 0, Max: 1 |
Ignore DCU HW Health Status in transition Ready <–> Awake |
Smlvsm Hardware Check Ignore |
|
14 |
SmlvsmHzrdReqVldIgn |
boolean |
[1,1] |
Min: 0, Max: 1 |
Switch off validity check of Hazard Request for transition to fully sleep |
Smlvsm Hazard Request Valid Ignore |
|
15 |
SmlvsmImobIninTiout |
single |
[1,1] |
Min: 0, Max: |
msec |
Timeout for receiving message from vehicle immobilizer module |
Smlvsm Immobilizer Initialization Timeout |
16 |
SmlvsmImobStIgn |
boolean |
[1,1] |
Min: 0, Max: 1 |
Switching off checking of Immobilizer state |
Smlvsm Immobilizer State Ignore |
|
17 |
SmlvsmIninBdTiout |
single |
[1,1] |
Min: 0, Max: |
msec |
Timeout for receiving information about board shut down status |
Smlvsm Initialization Board Timeout |
18 |
SmlvsmIninCrashTiout |
single |
[1,1] |
Min: 10, Max: |
msec |
Timeout for receiving Crash Event |
Smlvsm Initialization Crash Timeout |
19 |
SmlvsmIninRdyTiout |
single |
[1,1] |
Min: 10, Max: |
msec |
Timeout for receiving all messages from the mandatory systems |
Smlvsm Initialization Ready Timeout |
20 |
SmlvsmIninTiout |
single |
[1,1] |
Min: 0, Max: |
msec |
Timeout for NA state holding during initialisation |
Smlvsm Initialization Timeout |
21 |
SmlvsmIninVehSpdTi |
single |
[1,1] |
Min: 0, Max: |
msec |
Timeout for receiving speed msg |
Smlvsm Initialization Vehicle Speed Time |
22 |
SmlvsmInpLockDftVlddSt |
uint8 |
[1,1] |
Min: 0, Max: 3 |
Input Lock Default Validated State (in case unavailable): 0 - unlocked, 1 - locked, 2 - Err, 3 - NA |
Smlvsm Input Lock Default Validated State |
|
23 |
SmlvsmInvblAwkToFullSlpDly |
single |
[1,1] |
Min: 0, Max: 60 |
sec |
Delay for InvAwake to FullySleep conditions. Set 0 to disable |
Smlvsm Invisible Awake To Full Sleep Delay |
24 |
SmlvsmIsInpVldd |
boolean |
[1,1] |
Min: 0, Max: 1 |
Is Input Validated: Immo and Lock states |
Smlvsm Is Input Validated |
|
25 |
SmlvsmLoBatTmr |
single |
[1,1] |
Min: 10, Max: 1000000 |
sec |
Time allowed in Awake while the LV battery is in a Low state and is not charging |
Smlvsm Low Battery Timer |
26 |
SmlvsmLvTopUpVldIgn |
boolean |
[1,1] |
Min: 0, Max: 1 |
Switch off validity check of LV Top Up for transition to fully sleep |
Smlvsm Lv Top Up Valid Ignore |
|
27 |
SmlvsmOldWrmUpTmr |
boolean |
[1,1] |
Min: 0, Max: 1 |
Set true to use lecagy mode of WarmUpTimer |
Smlvsm Old Warm Up Timer |
|
28 |
SmlvsmParkTmr |
single |
[1,1] |
Min: 1, Max: 1000000 |
sec |
Time when vehicle shall go to Awake from Ready |
Smlvsm Park Timer |
29 |
SmlvsmRdyToAwkDly |
single |
[1,1] |
Min: 0, Max: 60 |
sec |
Delay for Ready to Awake conditions. Set 0 to disable |
Smlvsm Ready To Awake Delay |
30 |
SmlvsmRdyToSlpDi |
boolean |
[1,1] |
Min: 0, Max: 1 |
Disable ready to sleep transition |
Smlvsm Ready To Sleep Disable |
|
31 |
SmlvsmRdyToSlpDly |
single |
[1,1] |
Min: 0, Max: 60 |
sec |
Delay for Ready to Sleep conditions. Set 0 to disable |
Smlvsm Ready To Sleep Delay |
32 |
SmlvsmSlpToAwkChk |
boolean |
[1,8] |
Min: 0, Max: 1 |
Disable check trigger for Sleep2Awake |
Smlvsm Sleep To Awake Check |
|
33 |
SmlvsmSlpToAwkDly |
single |
[1,1] |
Min: 0, Max: 60 |
sec |
Delay for Sleep to Awake conditions. Set 0 to disable |
Smlvsm Sleep To Awake Delay |
34 |
SmlvsmThermCdnVldIgn |
boolean |
[1,1] |
Min: 0, Max: 1 |
Switch off validity check of ThermalPrecond for transition to fully sleep |
Smlvsm Thermal Condition Valid Ignore |
|
35 |
SmlvsmUpdMntnChkToSlpDi |
boolean |
[1,1] |
Min: 0, Max: 1 |
1 - disable OTA and maintenance requests check for Awake2Sleep transition |
Smlvsm Update Maintenance Check To Sleep Disable |
|
36 |
SmlvsmUseDoorStForSlpTmr |
boolean |
[1,1] |
Min: 0, Max: 1 |
if false VSM doesn’t check the Door State to go to sleep |
Smlvsm Use Door State For Sleep Timer |
|
37 |
SmlvsmVehAlrmVldIgn |
boolean |
[1,1] |
Min: 0, Max: 1 |
Switch off validity check of Vehicle Alarm Request for transition to fully sleep |
Smlvsm Vehicle Alarm Valid Ignore |
|
38 |
SmlvsmVehSpdThd |
uint8 |
[1,1] |
Min: 0, Max: 255 |
km/h |
Vehicle speed threshold used for detecting of movement |
Smlvsm Vehicle Speed Threshold |
39 |
SmlvsmWrmUpFlg |
boolean |
[1,1] |
Min: 0, Max: 1 |
WarmUpFlag value triggering the WarmUpTimer |
Smlvsm Warm Up Flag |
|
40 |
SmlvsmWrmUpFlgFromRdy |
boolean |
[1,1] |
Min: 0, Max: 1 |
WarmUpFlag value definition after transition from Ready state |
Smlvsm Warm Up Flag From Ready |
|
41 |
SmlvsmWrmUpTmr |
single |
[1,1] |
Min: 1, Max: |
sec |
Time during that vehicle shall stay in Invisible Awake submode before transition to Fully Sleep |
Smlvsm Warm Up Timer |
42 |
SmlvsmInpImobDftVlddSt |
uint8 |
[1,1] |
Min: 0, Max: 3 |
Input Immo Default Validated State (in case unavailable): 0 - unlocked, 1 - locked, 2 - Err, 3 - NA |
Smlvsm Input Immobilizer Default Validated State |