/****************************************************************************** * @fn nwk_nwkInit * * @brief Initialize NWK conext. * * input parameters * * output parameters * * @return Status of operation. */ smplStatus_t nwk_nwkInit(uint8_t (*f)(linkID_t)) { /* initialize globals */ nwk_globalsInit(); /* initialize frame processing */ nwk_frameInit(f); /* added for CCE port */ memset(sConTable.connStruct, 0, sizeof(sConTable.connStruct)); nwk_QInit(); /* initialize each network application. */ nwk_freqInit(); nwk_pingInit(); nwk_joinInit(f); nwk_mgmtInit(); nwk_linkInit(); nwk_securityInit(); /* set up the last connection as the broadcast port mapped to the broadcast Link ID */ sConTable.connStruct[NUM_CONNECTIONS].isValid = 1; sConTable.connStruct[NUM_CONNECTIONS].hops2target = MAX_HOPS; sConTable.connStruct[NUM_CONNECTIONS].portRx = SMPL_PORT_USER_BCAST; sConTable.connStruct[NUM_CONNECTIONS].portTx = SMPL_PORT_USER_BCAST; sConTable.connStruct[NUM_CONNECTIONS].thisLinkID = SMPL_LINKID_USER_UUD; /* set peer address to broadcast so it is used when Application sends to the broadcast Link ID */ memcpy(sConTable.connStruct[NUM_CONNECTIONS].peerAddr, nwk_getBCastAddress(), NET_ADDR_SIZE); return SMPL_SUCCESS; }
/****************************************************************************** * @fn nwk_nwkInit * * @brief Initialize NWK conext. * * input parameters * * output parameters * * @return Status of operation. */ smplStatus_t nwk_nwkInit(uint8_t (*f)(linkID_t)) { /* Truly ugly initialization because CCE won't initialize properly. Must * skip first const element. Yuk. */ memset((((uint8_t *)&sPersistInfo)+1), 0x0, (sizeof(sPersistInfo)-1)); /* OK. The zeroed elements are set. Now go back and do fixups... */ sPersistInfo.numConnections = SYS_NUM_CONNECTIONS; sPersistInfo.curNextLinkPort = SMPL_PORT_USER_MAX; sPersistInfo.curMaxReplyPort = PORT_BASE_NUMBER; sPersistInfo.nextLinkID = 1; /* initialize globals */ nwk_globalsInit(); /* initialize frame processing */ nwk_frameInit(f); /* initialize queue manager */ nwk_QInit(); /* initialize each network application. */ nwk_freqInit(); nwk_pingInit(); nwk_joinInit(f); nwk_mgmtInit(); nwk_linkInit(); nwk_securityInit(); #ifdef NWK_PLL nwk_PLLInit(); #endif /* set up the last connection as the broadcast port mapped to the broadcast Link ID */ if (CONNSTATE_FREE == sPersistInfo.connStruct[NUM_CONNECTIONS].connState) { sPersistInfo.connStruct[NUM_CONNECTIONS].connState = CONNSTATE_CONNECTED; sPersistInfo.connStruct[NUM_CONNECTIONS].hops2target = MAX_HOPS; sPersistInfo.connStruct[NUM_CONNECTIONS].portRx = SMPL_PORT_USER_BCAST; sPersistInfo.connStruct[NUM_CONNECTIONS].portTx = SMPL_PORT_USER_BCAST; sPersistInfo.connStruct[NUM_CONNECTIONS].thisLinkID = SMPL_LINKID_USER_UUD; /* set peer address to broadcast so it is used when Application sends to the broadcast Link ID */ memcpy(sPersistInfo.connStruct[NUM_CONNECTIONS].peerAddr, nwk_getBCastAddress(), NET_ADDR_SIZE); } return SMPL_SUCCESS; }