/*---------------------------------------------------------------------------*/ 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(); }