Пример #1
0
Файл: nRF_API.c Проект: CMon/dld
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;
}
Пример #2
0
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;
}
Пример #3
0
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
}
Пример #5
0
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;
}