aboutsummaryrefslogtreecommitdiffstats
path: root/policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c
diff options
context:
space:
mode:
Diffstat (limited to 'policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c')
-rwxr-xr-x[-rw-r--r--]policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c243
1 files changed, 210 insertions, 33 deletions
diff --git a/policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c b/policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c
index 3903202..2779653 100644..100755
--- a/policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c
+++ b/policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c
@@ -1,7 +1,7 @@
/************************************************************/
/* ZST_StateTransitionor_func.c */
/* Function and variable source file */
-/* ZIPC Designer Version 1.2.0 */
+/* ZIPC Designer Version 1.2.1 */
/************************************************************/
#include "ZST_include.h"
@@ -10,6 +10,12 @@
*************************************************************/
#include <string.h>
+#include <stdbool.h>
+
+#include "../stm_master_apps.h"
+#include "../stm_master_remote.h"
+
+static int stm_ecu_type = StmEcuTypeIVI;
//=================================
// API
@@ -17,34 +23,131 @@
/**
* Initialize STM
*/
-void stmInitializeInner() {
+void stmInitializeInner(const char *ecu_name) {
+
+ if (0 == strcmp("slave", ecu_name))
+ {
+ stm_ecu_type = StmEcuTypeIVI;
+ }
+ else if (0 == strcmp("master", ecu_name))
+ {
+ stm_ecu_type = StmEcuTypeMeter;
+ }
+ else if (0 == strcmp("hud", ecu_name))
+ {
+ stm_ecu_type = StmEcuTypeHUD;
+ }
+ else if (0 == strcmp("rse1", ecu_name))
+ {
+ stm_ecu_type = StmEcuTypeRSE1;
+ }
+ else if (0 == strcmp("rse2", ecu_name))
+ {
+ stm_ecu_type = StmEcuTypeRSE2;
+ }
+
// Initialize previous state
memset(&g_stm_prv_state, 0, sizeof(g_stm_prv_state));
// Initialize current state
g_stm_crr_state = g_stm_prv_state;
- /* Initialize restriction mode state */
- stm_rem_initialize();
- stm_rem_initialize_variable();
+ // Initialize map activate state
+ g_stm_map_is_activated = STM_FALSE;
+
+ switch ( stm_ecu_type )
+ {
+ case StmEcuTypeMeter:
+ /* Initialize LightstatusBrake state */
+ stm_lbs_initialize();
+ stm_lbs_initialize_variable();
- // Initialize homecsreen layer
- stm_hsl_initialize();
- stm_hsl_initialize_variable();
+ /* Initialize AccelPedal state */
+ stm_aps_initialize();
+ stm_aps_initialize_variable();
- // Initialize apps layer
- stm_apl_initialize();
- stm_apl_initialize_variable();
+ /* Initialize car state */
+ stm_rns_initialize();
+ stm_rns_initialize_variable();
- // Initialize near_homecsreen layer
- stm_nhl_initialize();
- stm_nhl_initialize_variable();
+ /* Initialize restriction mode state */
+ stm_rem_initialize();
+ stm_rem_initialize_variable();
- /* Initialize restriction layer */
- stm_rel_initialize();
- stm_rel_initialize_variable();
+ // Initialize homecsreen layer
+ stm_hsl_initialize();
+ stm_hsl_initialize_variable();
- g_stm_map_is_activated = STM_FALSE;
+ // Initialize apps layer on master ecu
+ stm_master_apl_initialize();
+ stm_master_apl_initialize_valiable();
+
+ // Initialize near_homecsreen layer
+ stm_nhl_initialize();
+ stm_nhl_initialize_variable();
+
+ /* Initialize restriction layer */
+ stm_rel_initialize();
+ stm_rel_initialize_variable();
+
+ // Initialize remote layer on master ecu
+ stm_mst_rmt_initialize();
+ stm_mst_rmt_initialize_valiable();
+ break;
+ case StmEcuTypeHUD:
+ // Initialize remote_hud layer on HUD ecu
+ stm_rmt_hud_initialize();
+ stm_rmt_hud_initialize_variable();
+
+ // Initialize remote_hud_up_left layer on HUD ecu
+ stm_rmt_hud_up_left_initialize();
+ stm_rmt_hud_up_left_initialize_variable();
+ break;
+ case StmEcuTypeRSE1:
+ // Initialize remote_rse1 layer on RSE1 ecu
+ stm_rmt_rse1_initialize();
+ stm_rmt_rse1_initialize_variable();
+ break;
+ case StmEcuTypeRSE2:
+ // Initialize remote_rse2 layer on RSE2 ecu
+ stm_rmt_rse2_initialize();
+ stm_rmt_rse2_initialize_variable();
+ break;
+ case StmEcuTypeIVI:
+ default:
+ // Initialize LightstatusBrake state
+ stm_lbs_initialize();
+ stm_lbs_initialize_variable();
+
+ // Initialize AccelPedal state
+ stm_aps_initialize();
+ stm_aps_initialize_variable();
+
+ // Initialize car state
+ stm_rns_initialize();
+ stm_rns_initialize_variable();
+
+ // Initialize restriction mode state
+ stm_rem_initialize();
+ stm_rem_initialize_variable();
+
+ // Initialize homecsreen layer
+ stm_hsl_initialize();
+ stm_hsl_initialize_variable();
+
+ // Initialize apps layer
+ stm_apl_initialize();
+ stm_apl_initialize_variable();
+
+ // Initialize near_homecsreen layer
+ stm_nhl_initialize();
+ stm_nhl_initialize_variable();
+
+ // Initialize restriction layer
+ stm_rel_initialize();
+ stm_rel_initialize_variable();
+ break;
+ }
}
/**
@@ -55,23 +158,84 @@ int stmTransitionStateInner(int event_id, StmState* state) {
g_stm_category = STM_GET_CATEGORY_FROM_ID(event_id);
g_stm_area = STM_GET_AREA_FROM_ID(event_id);
- // restriction mode
- stm_rem_event_call();
+ switch ( stm_ecu_type )
+ {
+ case StmEcuTypeMeter:
+ // LightstatusBrake state
+ stm_lbs_event_call();
- // homescreen layer
- stm_hsl_event_call();
+ // AccelPedal state
+ stm_aps_event_call();
- // apps layer
- stm_apl_event_call();
+ // Car state
+ stm_rns_event_call();
- // near_homecsreen layer
- stm_nhl_event_call();
+ // restriction mode
+ stm_rem_event_call();
- // restriction layer
- stm_rel_event_call();
+ // homescreen layer
+ stm_hsl_event_call();
- // on_screen layer
- stm_osl_event_call();
+ // apps layer on master ecu
+ stm_master_apl_event_call();
+
+ // near_homecsreen layer
+ stm_nhl_event_call();
+
+ // restriction layer
+ stm_rel_event_call();
+
+ // on_screen layer
+ stm_osl_event_call();
+
+ // remote layer on master ecu
+ stm_mst_rmt_event_call();
+ break;
+ case StmEcuTypeHUD:
+ // remote_hud layer on HUD ecu
+ stm_rmt_hud_event_call();
+
+ // remote_hud_up_left layer on HUD ecu
+ stm_rmt_hud_up_left_event_call();
+ break;
+ case StmEcuTypeRSE1:
+ // remote_rse1 layer on RSE1 ecu
+ stm_rmt_rse1_event_call();
+ break;
+ case StmEcuTypeRSE2:
+ // remote_rse2 layer on RSE2 ecu
+ stm_rmt_rse1_event_call();
+ break;
+ case StmEcuTypeIVI:
+ default:
+ // LightstatusBrake state
+ stm_lbs_event_call();
+
+ // AccelPedal state
+ stm_aps_event_call();
+
+ // Car state
+ stm_rns_event_call();
+
+ // restriction mode
+ stm_rem_event_call();
+
+ // homescreen layer
+ stm_hsl_event_call();
+
+ // apps layer
+ stm_apl_event_call();
+
+ // near_homecsreen layer
+ stm_nhl_event_call();
+
+ // restriction layer
+ stm_rel_event_call();
+
+ // on_screen layer
+ stm_osl_event_call();
+ break;
+ }
// Copy current state for return
memcpy(state, &g_stm_crr_state, sizeof(g_stm_crr_state));
@@ -85,8 +249,16 @@ int stmTransitionStateInner(int event_id, StmState* state) {
void stmUndoStateInner() {
g_stm_event = StmEvtNoUndo;
- // apps layer
- stm_apl_event_call();
+ if (StmEcuTypeMeter == stm_ecu_type)
+ {
+ // apps layer on master ecu
+ stm_master_apl_event_call();
+ }
+ else
+ {
+ // apps layer
+ stm_apl_event_call();
+ }
// near_homecsreen layer
stm_nhl_event_call();
@@ -97,6 +269,11 @@ void stmUndoStateInner() {
// on_screen layer
stm_osl_event_call();
+ if (StmEcuTypeMeter == stm_ecu_type)
+ {
+ // remote layer on master ecu
+ stm_mst_rmt_event_call();
+ }
+
g_stm_crr_state = g_stm_prv_state;
}
-