1 /************************************************************/
3 /* CarState State transition model source file */
4 /* ZIPC Designer Version 1.2.0 */
5 /************************************************************/
6 #include "../ZST_include.h"
8 /* State management variable */
9 static uint8_t ZCAR_CarStateState[ZCAR_CARSTATESTATENOMAX];
11 static void ZCAR_CarStates0e1( void );
12 static void ZCAR_CarStates1e0( void );
13 static void ZCAR_CarStates0Event( void );
14 static void ZCAR_CarStates1Event( void );
16 /****************************************/
19 /* State : car_stop( No 0 ) */
20 /* Event : stt_accel_pedal_on( No 1 ) */
21 /****************************************/
22 static void ZCAR_CarStates0e1( void )
24 ZCAR_CarStateState[ZCAR_CARSTATE] = ( uint8_t )ZCAR_CARSTATES1;
25 stm_rns_start_activity_car_run();
28 /****************************************/
31 /* State : car_run( No 1 ) */
32 /* Event : stt_accel_pedal_off( No 0 )*/
33 /****************************************/
34 static void ZCAR_CarStates1e0( void )
36 ZCAR_CarStateState[ZCAR_CARSTATE] = ( uint8_t )ZCAR_CARSTATES0;
37 stm_rns_start_activity_car_stop();
40 /****************************************/
41 /* Event appraisal function */
43 /* State : car_stop( No 0 ) */
44 /****************************************/
45 static void ZCAR_CarStates0Event( void )
47 /*stt_lightstatus_brake_off*/
48 if( g_stm_crr_state.car_element[StmCarElementNoLightstatusBrake].state == StmLightstatusBrakeSttNoOff )
50 /*stt_accel_pedal_on*/
51 if( g_stm_crr_state.car_element[StmCarElementNoAccelPedal].state == StmAccelPedalSttNoOn )
57 /*Else and default design have not done.*/
58 /*Please confirm the STM and design else and default.*/
63 /*Else and default design have not done.*/
64 /*Please confirm the STM and design else and default.*/
68 /****************************************/
69 /* Event appraisal function */
71 /* State : car_run( No 1 ) */
72 /****************************************/
73 static void ZCAR_CarStates1Event( void )
75 /*stt_lightstatus_brake_off*/
76 if( g_stm_crr_state.car_element[StmCarElementNoLightstatusBrake].state == StmLightstatusBrakeSttNoOff )
78 /*stt_accel_pedal_off*/
79 if( g_stm_crr_state.car_element[StmCarElementNoAccelPedal].state == StmAccelPedalSttNoOff )
85 /*Else and default design have not done.*/
86 /*Please confirm the STM and design else and default.*/
89 /*stt_lightstatus_brake_on*/
90 else if( g_stm_crr_state.car_element[StmCarElementNoLightstatusBrake].state == StmLightstatusBrakeSttNoOn )
92 /*stt_accel_pedal_off*/
93 if( g_stm_crr_state.car_element[StmCarElementNoAccelPedal].state == StmAccelPedalSttNoOff )
97 /*stt_accel_pedal_on*/
98 else if( g_stm_crr_state.car_element[StmCarElementNoAccelPedal].state == StmAccelPedalSttNoOn )
104 /*Else and default design have not done.*/
105 /*Please confirm the STM and design else and default.*/
110 /*Else and default design have not done.*/
111 /*Please confirm the STM and design else and default.*/
115 /****************************************/
116 /* Event call function */
118 /****************************************/
119 void stm_rns_event_call( void )
122 switch( ZCAR_CarStateState[ZCAR_CARSTATE] )
124 case ZCAR_CARSTATES0:
125 ZCAR_CarStates0Event();
127 case ZCAR_CARSTATES1:
128 ZCAR_CarStates1Event();
131 /*Not accessible to this else (default).*/
136 /****************************************/
137 /* Initial function */
139 /****************************************/
140 void stm_rns_initialize( void )
142 ZCAR_CarStateState[ZCAR_CARSTATE] = ( uint8_t )ZCAR_CARSTATES0;
143 stm_rns_start_activity_car_stop();
146 /****************************************/
147 /* Terminate function */
149 /****************************************/
150 void ZCAR_CarStateTerminate( void )
152 ZCAR_CarStateState[ZCAR_CARSTATE] = ( uint8_t )ZCAR_CARSTATETERMINATE;