unsigned char nRFAPI_Init( unsigned char channel, const unsigned char *mac, unsigned char mac_size, unsigned char features ) { unsigned char i; // init lower layer nRFCMD_Init(); // check validity if( mac_size<3 || mac_size>5 || !nRFAPI_DetectChip() ) return 0; // update mac nRFAPI_SetSizeMac(mac_size); nRFAPI_SetTxMAC(mac,mac_size); // enables pipe nRFAPI_SetRxMAC(mac,mac_size,0); nRFAPI_PipesEnable(ERX_P0); nRFAPI_PipesAck(0); // set payload sizes for(i=0; i<=5; i++) nRFAPI_SetPipeSizeRX(i,2); // set TX retry count nRFAPI_TxRetries(0); // set selected channel nRFAPI_SetChannel(channel); // set Tx power nRFAPI_SetTxPower(3); // flush FIFOs nRFAPI_FlushRX(); nRFAPI_FlushTX(); nRFAPI_SetRxMode(0); if(features != 0) nRFAPI_SetFeatures(features); return 1; }
static inline s_int8_t PtInitNRF (void) { if (!nRFAPI_Init (DEFAULT_CHANNEL, broadcast_mac, sizeof (broadcast_mac), ENABLED_NRF_FEATURES)) return 0; jam_density_ms = DEFAULT_JAM_DENSITY; nrf_powerlevel_last = nrf_powerlevel_current = -1; PtSetRfPowerLevel (NRF_POWERLEVEL_MAX); nRFAPI_SetSizeMac (sizeof (wmcu_mac)); nRFAPI_SetPipeSizeRX (0, sizeof (rfpkg)); nRFAPI_SetPipeSizeRX (1, sizeof (rfpkg)); nRFAPI_PipesEnable (ERX_P0 | ERX_P1); PtUpdateWmcuId (env.e.mcu_id == 0); nRFAPI_SetRxMode (0); nRFCMD_CE (0); return 1; }
void init_authentication (void) { if (!nRFAPI_Init(DEFAULT_CHANNEL, broadcast_mac, sizeof (broadcast_mac), ENABLED_NRF_FEATURES)) return; nRFAPI_SetPipeSizeRX (0, 16); nRFAPI_SetTxPower (3); nRFAPI_SetRxMode (1); nRFCMD_CE (1); xTaskCreate (authentication_task, (signed portCHAR *) "AUTHENTICATION", TASK_NRF_STACK, NULL, TASK_NRF_PRIORITY, NULL); }
void ob_init( unsigned char power, unsigned char rate, unsigned char channel, unsigned char* nid ) { char i; ob_int_mgmt.Mode = 0; ob_int_mgmt.Pipes = 0; /* Inititalize nRF24L01 */ if(!nRFAPI_Init(DEFAULT_CHANNEL, nid, NETID_SIZE )) HaltBlinking(); ob_setNetID( nid ); ob_setRate( rate ); ob_setPower( power ); ob_setChannel( channel ); nRFAPI_SetPipeSizeRX(0, sizeof(ob_data) ); ob_switchRXMode(); nRFLL_CE(1); /* initialize environment variables */ env_init(); if(!env_load()) { env.e.speed=2; env.e.mode=4; env.e.tag_id=666; env_store(); } /* Statistik */ for(i=0; i<4; i++) { ob_int_mgmt.rx_beacons[i] = 0; ob_int_mgmt.fail_rx_beacons[i] = 0; ob_int_mgmt.tx_beacons[i] = 0; ob_int_mgmt.fail_tx_beacons[i] = 0; } #ifdef OPENBEACON_STATS_AUTO_SEND_TIME ob_int_mgmt.stat_time = xTaskGetTickCount()+OPENBEACON_STATS_AUTO_SEND_TIME/2; #else ob_int_mgmt.stat_time = xTaskGetTickCount()+1000/2; #endif #ifdef OPENBEACON_TEST_AUTO_SEND #ifdef OPENBEACON_TEST_AUTO_SEND_TIME ob_int_mgmt.test_hw_diff=OPENBEACON_TEST_AUTO_SEND_TIME; #else ob_int_mgmt.test_hw_diff=1000; #endif #endif }
uint8_t nRFAPI_Init (uint8_t channel, const uint8_t * mac, uint8_t mac_size, uint8_t features) { uint8_t i; // init IO layer of nRF24L01 nRFCMD_Init (); /* wait for nRF to boot */ pmu_sleep_ms(10); // check validity if (mac_size < 3 || mac_size > 5 || !nRFAPI_DetectChip ()) return 0; // update mac nRFAPI_SetSizeMac (mac_size); nRFAPI_SetTxMAC (mac, mac_size); // enables pipe nRFAPI_SetRxMAC (mac, mac_size, 0); nRFAPI_PipesEnable (ERX_P0); nRFAPI_PipesAck (0); // set payload sizes for (i = 0; i <= 5; i++) nRFAPI_SetPipeSizeRX (i, 16); // set TX retry count nRFAPI_TxRetries (0); // set selected channel nRFAPI_SetChannel (channel); // set Tx power nRFAPI_SetTxPower (3); // flush FIFOs nRFAPI_FlushRX (); nRFAPI_FlushTX (); if (features != 0) nRFAPI_SetFeatures (features); return 1; }