diff options
author | zheng_wenlong <wenlong_zheng@nexty-ele.com> | 2018-10-30 14:36:16 +0900 |
---|---|---|
committer | zheng_wenlong <wenlong_zheng@nexty-ele.com> | 2018-10-30 14:36:16 +0900 |
commit | de492ca32c0cc4eb7e090ba33945eb75a21cc14a (patch) | |
tree | c81e48f9fa7199afa87a25781599ed6d963989b1 /policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c | |
parent | 3ae8e9b6a7947b91409b112e1a699385627c5945 (diff) |
add source for ces2019
Diffstat (limited to 'policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c')
-rw-r--r-- | policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c | 130 |
1 files changed, 103 insertions, 27 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..daea2ca 100644 --- a/policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c +++ b/policy_manager/stm/zipc/StateTransitionor/ZST_StateTransitionor_func.c @@ -4,12 +4,17 @@ /* ZIPC Designer Version 1.2.0 */ /************************************************************/ #include "ZST_include.h" +#include "../stm_master_apps.h" +#include "../stm_master_remote.h" /************************************************************* Function definition *************************************************************/ #include <string.h> +#include <stdbool.h> + +static bool isMaster = false; //================================= // API @@ -17,34 +22,69 @@ /** * Initialize STM */ -void stmInitializeInner() { +void stmInitializeInner(const char *ecu_name) { + + // TODO: Set master mode + if (0 == strcmp("master", ecu_name)) + { + isMaster = true; + } + // 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 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(); - - g_stm_map_is_activated = STM_FALSE; + /* 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(); + + if (isMaster) + { + // Initialize apps layer on master ecu + stm_master_apl_initialize(); + stm_master_apl_initialize_valiable(); + } + else + { + // 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(); + + if (isMaster) + { + // Initialize remote layer on master ecu + stm_mst_rmt_initialize(); + stm_mst_rmt_initialize_valiable(); + } + + g_stm_map_is_activated = STM_FALSE; } /** @@ -55,14 +95,31 @@ 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); + // 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(); + if (isMaster) + { + // apps layer on master ecu + stm_master_apl_event_call(); + } + else + { + // apps layer + stm_apl_event_call(); + } // near_homecsreen layer stm_nhl_event_call(); @@ -73,6 +130,12 @@ int stmTransitionStateInner(int event_id, StmState* state) { // on_screen layer stm_osl_event_call(); + if (isMaster) + { + // remote layer on master ecu + stm_mst_rmt_event_call(); + } + // Copy current state for return memcpy(state, &g_stm_crr_state, sizeof(g_stm_crr_state)); @@ -85,8 +148,16 @@ int stmTransitionStateInner(int event_id, StmState* state) { void stmUndoStateInner() { g_stm_event = StmEvtNoUndo; - // apps layer - stm_apl_event_call(); + if (isMaster) + { + // 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 +168,11 @@ void stmUndoStateInner() { // on_screen layer stm_osl_event_call(); + if (isMaster) + { + // remote layer on master ecu + stm_mst_rmt_event_call(); + } + g_stm_crr_state = g_stm_prv_state; } - |