/** * @brief Main function of the Wireless UART application */ int main(void) { /* Initialize the TAL layer */ if (tal_init() != MAC_SUCCESS) { // something went wrong during initialization pal_alert(); } /* Calibrate MCU's RC oscillator */ pal_calibrate_rc_osc(); /* Initialize LEDs */ pal_led_init(); pal_led(LED_START, LED_ON); // indicating application is started pal_led(LED_DATA_RX, LED_OFF); // indicating data reception pal_led(LED_DATA_TX, LED_OFF); // indicating successfull data transmission /* * The stack is initialized above, hence the global interrupts are enabled * here. */ pal_global_irq_enable(); /* Initialize the serial interface used for communication with terminal program */ if (pal_sio_init(SIO_CHANNEL) != MAC_SUCCESS) { // something went wrong during initialization pal_alert(); } /* Configure TX frame and transceiver */ configure_frame_sending(); /* Switch receiver on */ tal_rx_enable(PHY_RX_ON); #if(SEND_BLOCKWISE==true) start_timer(); #endif /* Endless while loop */ while (1) { pal_task(); /* Handle platform specific tasks, like serial interface */ tal_task(); /* Handle transceiver specific tasks */ #if(!(SEND_BLOCKWISE==true)) app_task(); /* Application task */ #endif } }
/** * @brief Main function of the Sniffer application */ int main(void) { /* Initialize the TAL layer */ if (tal_init() != MAC_SUCCESS) { /* something went wrong during initialization*/ pal_alert(); } /* Calibrate MCU's RC oscillator */ pal_calibrate_rc_osc(); /* Initialize LEDs */ pal_led_init(); /* * The stack is initialized above, hence the global interrupts are enabled * here. */ pal_global_irq_enable(); /* Initialize the serial interface used for communication with sniffer GUI */ if (pal_sio_init(SIO_CHANNEL) != MAC_SUCCESS) { /* something went wrong during initialization */ pal_alert(); } //sio_getchar(); Wireshark_Settings = INIT_STATE ; /* Endless while loop */ while (1) { pal_task(); tal_task(); app_task(); } }
/** * @brief Initializes the MAC sublayer * * @return MAC_SUCCESS if TAL is intialized successfully else FAILURE */ retval_t mac_init(void) { #ifdef GTS_DEBUG struct port_config config_port_pin; config_port_pin.direction = PORT_PIN_DIR_OUTPUT; port_pin_set_config(DEBUG_PIN1, &config_port_pin); port_pin_set_config(DEBUG_PIN2, &config_port_pin); port_pin_set_config(DEBUG_PIN3, &config_port_pin); port_pin_set_config(DEBUG_PIN4, &config_port_pin); port_pin_set_config(DEBUG_PIN5, &config_port_pin); port_pin_set_config(DEBUG_PIN6, &config_port_pin); port_pin_set_config(DEBUG_PIN7, &config_port_pin); port_pin_set_config(DEBUG_PIN8, &config_port_pin); port_pin_set_config(DEBUG_PIN9, &config_port_pin); port_pin_set_config(DEBUG_PIN10, &config_port_pin); port_pin_set_config(DEBUG_PIN11, &config_port_pin); port_pin_set_config(DEBUG_PIN12, &config_port_pin); port_pin_set_config(DEBUG_PIN13, &config_port_pin); port_pin_set_config(DEBUG_PIN14, &config_port_pin); port_pin_set_config(DEBUG_PIN15, &config_port_pin); /*ioport_configure_pin(DEBUG_PIN1, IOPORT_DIR_OUTPUT | * IOPORT_INIT_LOW); * ioport_configure_pin(DEBUG_PIN2, IOPORT_DIR_OUTPUT | * IOPORT_INIT_LOW); * ioport_configure_pin(DEBUG_PIN3, IOPORT_DIR_OUTPUT | * IOPORT_INIT_LOW); * ioport_configure_pin(DEBUG_PIN4, IOPORT_DIR_OUTPUT | * IOPORT_INIT_LOW);*/ #endif /* Initialize TAL */ if (tal_init() != MAC_SUCCESS) { return FAILURE; } #ifdef STB_ON_SAL stb_init(); #endif #ifdef ENABLE_RTB /* Initialize RTB */ if (rtb_init() != RTB_SUCCESS) { return FAILURE; } #endif /* ENABLE_RTB */ /* Calibrate MCU's RC oscillator */ if (!pal_calibrate_rc_osc()) { return FAILURE; } if (MAC_SUCCESS != mac_timers_init()) { return FAILURE; } mac_soft_reset(true); /* Set radio to sleep if allowed */ mac_sleep_trans(); /* Initialize the queues */ #ifdef ENABLE_QUEUE_CAPACITY qmm_queue_init(&nhle_mac_q, NHLE_MAC_QUEUE_CAPACITY); qmm_queue_init(&tal_mac_q, TAL_MAC_QUEUE_CAPACITY); #if (MAC_INDIRECT_DATA_FFD == 1) qmm_queue_init(&indirect_data_q, INDIRECT_DATA_QUEUE_CAPACITY); #endif /* (MAC_INDIRECT_DATA_FFD == 1) */ #if (MAC_START_REQUEST_CONFIRM == 1) #ifdef BEACON_SUPPORT qmm_queue_init(&broadcast_q, BROADCAST_QUEUE_CAPACITY); #endif /* BEACON_SUPPORT */ #endif /* (MAC_START_REQUEST_CONFIRM == 1) */ #else qmm_queue_init(&nhle_mac_q); qmm_queue_init(&tal_mac_q); #if (MAC_INDIRECT_DATA_FFD == 1) qmm_queue_init(&indirect_data_q); #endif /* (MAC_INDIRECT_DATA_FFD == 1) */ #if (MAC_START_REQUEST_CONFIRM == 1) #ifdef BEACON_SUPPORT qmm_queue_init(&broadcast_q); #endif /* BEACON_SUPPORT */ #endif /* (MAC_START_REQUEST_CONFIRM == 1) */ #endif /* ENABLE_QUEUE_CAPACITY */ return MAC_SUCCESS; }