On E_EVENT_START_UP when the system starts, sets the tsToCoNet_NwkLyTr_Config structure, executes the ToCoNet_NwkLyTr_psConfig() function, initializes the network with the ToCoNet_Nwk_bInit() function and starts the network with the ToCoNet_Nwk_bStart() function.
The E_EVENT_TOCONET_NWK_START event is received after the network starts.
static tsToCoNet_NwkLyTr_Config sNwkLayerTreeConfig;
static tsToCoNet_Nwk_Context* pContextNwk;
static void vProcessEvCore(tsEvent *pEv, teEvent eEvent, uint32 u32evarg) {
switch (pEv->eState) {
case E_STATE_IDLE:
if (eEvent == E_EVENT_START_UP) {
V_PRINTF(LB"[E_STATE_IDLE]");
// Configure the Network
sNwkLayerTreeConfig.u8Layer = 0;
sNwkLayerTreeConfig.u8Role
= TOCONET_NWK_ROLE_PARENT;
pContextNwk =
ToCoNet_NwkLyTr_psConfig(&sNwkLayerTreeConfig);
if (pContextNwk) {
ToCoNet_Nwk_bInit(pContextNwk);
ToCoNet_Nwk_bStart(pContextNwk);
}
} else if (eEvent == E_EVENT_TOCONET_NWK_START) {
// Transition to the RUNNING state with a START event
// * Transmission from cbToCoNet_vNwkEvent()
ToCoNet_Event_SetState(pEv, E_STATE_RUNNING);
} else {
;
}
break;
case E_STATE_RUNNING:
if (eEvent == E_EVENT_NEW_STATE) {
V_PRINTF(LB"[E_STATE_RUNNING]");
} else {
; // DO SOMETHING ELSE!
}
break;
default:
break;
}
}