Example #1
0
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(hello_world_process, ev, data)
{
  PROCESS_BEGIN();
  frame_manager_init();


	status_led_init();
	status_led_rx_on(led_on);
	status_led_tx_on(led_on);

  etimer_set(&et_hello, 1 * CLOCK_SECOND);

  while( 1 )
  {

    PROCESS_WAIT_EVENT();

    if(ev == PROCESS_EVENT_TIMER) {

			if (led_on) led_on = FALSE;
			else led_on = TRUE;

			status_led_rx_on(led_on);
			status_led_tx_on(led_on);

			etimer_reset(&et_hello);
    }
  }
  PROCESS_END();
}
void OnRxDone( uint8_t *payload, uint16_t size, int8_t rssi, int8_t snr )
{
   int i;
   
	 rx_msg_size = size;
	 memcpy( rx_msg_buf, payload, rx_msg_size);
	  
	 status_led_rx_on(TRUE);

	 // indicate buffer to arduino interface
	 set_arduino_read_buf(rx_msg_buf, rx_msg_size);
	
	 pending_packets ++;

		if (pending_packets > 1) {
//			printf("WARNING: Previous RX msg lost\n\r");
		
			pending_packets = 1;
		}

   // save Rssi and SNR
  rx_last_snr_g = snr;
  rx_last_rssi_g = rssi;
	 
	 printf("RX received, size: %d RSSI: %d, SNR: %d\n\r", rx_msg_size, rssi, snr);
	 for (i = 0; i<rx_msg_size; i++) 
		 printf("%02x", rx_msg_buf[i] );

	 printf("\n\r");

//   printf("REG_LR_FIFOADDRPTR %d REG_LR_FIFORXCURRENTADDR %d\n\r", SX1272Read(REG_LR_FIFOADDRPTR), SX1272Read(REG_LR_FIFORXCURRENTADDR) ) ;

 	 // Reset RX to redo startup calibrations
	 lora_radio_driver.off();
   lora_radio_driver.on();
	
}