int main( void ) { halInit(); printf("\r\n****************************************************\r\n"); printf("Basic Communications Example - COORDINATOR - using AFZDO\r\n"); HAL_ENABLE_INTERRUPTS(); setLed(0); /* Initialize the ZNP */ printf("Initializing the ZNP "); znpInit(); handleReturnValue(); /* Set Startup Options (will restore the ZNP to default values on reset) */ printf("Setting StartupOptions "); setStartupOptions(STARTOPT_CLEAR_CONFIG + STARTOPT_CLEAR_STATE); handleReturnValue(); /* Reset the ZNP */ printf("Reset the ZNP "); znpReset(); handleReturnValue(); /* Set Zigbee Device Type to be COORDINATOR */ printf("Setting Zigbee Device Type "); setZigbeeDeviceType(COORDINATOR); handleReturnValue(); /* Enabling Callbacks (required to receive ZDO_IEEE_ADDR_RSP) */ //#ifdef FIND_MAC_ADDRESS_OF_SENDER //define this to print out sender's MAC address printf("Enabling Callbacks "); setCallbacks(CALLBACKS_ENABLED); handleReturnValue(); //#endif /* Configure the ZNP for our application */ printf("Registering Application "); afRegisterGenericApplication(); handleReturnValue(); /* Now, start the application. We will receive a START_REQUEST_SRSP, and then if it is successful, a START_CONFIRM. */ printf("Starting the Application "); zdoStartApplication(); handleReturnValue(); /** Wait until we get on the network. We will receive a ZDO_STATE_CHANGE_IND message whenever the state changes. */ waitForDeviceState(DEV_ZB_COORD); printf("On Network!\r\n"); setLed(1); /* On network, display info about this network */ #ifdef DISPLAY_NETWORK_INFORMATION getNetworkConfigurationParameters(); getDeviceInformation(); #endif /* Now the network is running - continually poll for any received messages from the ZNP */ #ifdef FIND_MAC_ADDRESS_OF_SENDER //define this to print out sender's MAC address displayReceivedMessagesAndFindDevice(); #else displayReceivedMessages(); #endif }
int main( void ) { halInit(); printf("\r\n****************************************************\r\n"); printf("Secure Communications Example - COORDINATOR - using AFZDO\r\n"); HAL_ENABLE_INTERRUPTS(); setLed(0); //Simple idiot check to ensure that we didn't accidentally define both security options. #if defined(USE_SECURITY_MODE_PRECONFIGURED_KEYS) && defined(USE_SECURITY_MODE_COORD_DIST_KEYS) printf("ERROR - only select one security option!\r\n"); while (1); #endif /* Initialize the ZNP */ printf("Initializing the ZNP\r\n"); znpInit(); handleReturnValue(); /* Set Startup Options (will restore the ZNP to default values on reset) */ printf("Setting StartupOptions\r\n"); setStartupOptions(STARTOPT_CLEAR_CONFIG + STARTOPT_CLEAR_STATE); handleReturnValue(); /* Set Zigbee Device Type to be COORDINATOR */ printf("Setting Zigbee Device Type\r\n"); setZigbeeDeviceType(COORDINATOR); handleReturnValue(); /* Enabling Callbacks (required to receive ZDO_IEEE_ADDR_RSP) */ printf("Enabling Callbacks\r\n"); setCallbacks(CALLBACKS_ENABLED); handleReturnValue(); /* Reset the ZNP */ printf("Reset the ZNP\r\n"); znpReset(); handleReturnValue(); /* Configure security mode, if it is being used */ #ifdef USE_SECURITY_MODE_PRECONFIGURED_KEYS printf("SECURITY ON WITH PRECONFIGURED KEYS\r\n"); /* Turn security ON with pre-configured keys */ setSecurityMode(SECURITY_MODE_PRECONFIGURED_KEYS); handleReturnValue(); /* All devices on the network must be loaded with the same key */ setSecurityKey(key); handleReturnValue(); #endif #ifdef USE_SECURITY_MODE_COORD_DIST_KEYS printf("SECURITY ON WITH COORDINATOR DISTRIBUTING KEYS\r\n"); /* Turn security ON with the coordinator distributing keys. */ setSecurityMode(SECURITY_MODE_COORD_DIST_KEYS); handleReturnValue(); /* This is the key that will be distributed to other devices when they attempt to join */ setSecurityKey(key); handleReturnValue(); #endif /** Note: if no security option is selected then this will behave like a normal coordinator and will accept join requests from any device. */ #if !defined(USE_SECURITY_MODE_PRECONFIGURED_KEYS) && !defined(USE_SECURITY_MODE_COORD_DIST_KEYS) printf("WARNING - NO SECURITY OPTION SELECTED; SECURITY OFF\r\n"); #endif /* Configure the ZNP for our application */ printf("Registering Application\r\n"); afRegisterGenericApplication(); handleReturnValue(); /* Now, start the application. We will receive a START_REQUEST_SRSP, and then if it is successful, a START_CONFIRM. */ printf("Starting the Application\r\n"); zdoStartApplication(); handleReturnValue(); /** Wait until we get on the network. We will receive a ZDO_STATE_CHANGE_IND message whenever the state changes. */ waitForDeviceState(DEV_ZB_COORD); printf("On Network!\r\n"); setLed(1); /* On network, display info about this network */ #ifdef DISPLAY_NETWORK_INFORMATION getNetworkConfigurationParameters(); getDeviceInformation(); #endif /* Now the network is running - continually poll for any received messages from the ZNP */ if (SRDY_IS_HIGH()) pollAndDisplay(); displayReceivedMessages(); }