idle exit execs

来自「opnet无线网络编程」· 代码 · 共 48 行

TXT
48
字号
/* Lock the mutex that serializes accessing the roaming related		*/
/* information of this MAC. 										*/
op_prg_mt_mutex_lock (roam_state_ptr->roam_info_mutex, 0);

/* Interrupt processing routine.									*/
wlan_interrupts_process ();

/* Schedule deference interrupt when there is a frame to transmit	*/
/* at the stream interrupt and the receiver is not busy				*/
if (READY_TO_TRANSMIT)
	//{
	wlan_schedule_deference ();
	
	/* If the medium was idling for a period equal or longer than	*/
	/* DIFS time then we don't need to defer.						*/
	//if (MEDIUM_IS_IDLE && !IN_CFP)
		//{
		/* We can start the transmission immediately.				*/
		//wlan_flags->immediate_xmt = OPC_TRUE;
		//backoff_slots = BACKOFF_SLOTS_UNSET;
		//}
	
	/* We schedule a deference only for the DCF period. 			*/
	//else if (!IN_CFP)
	//	{
		// mib took this out since WSN nodes should always defer
		//wlan_schedule_deference ();
	//	}
	//}

/* If roaming is enabled, there must be a periodic self interrupt scheduled for */
/* checking connectivity. Cancel this interrupt when exiting this state. */
if (roam_state_ptr->enable_roaming && op_ev_pending (ap_connectivity_check_evhndl))
	{
	op_ev_cancel (ap_connectivity_check_evhndl);
	}

// energy calculation check
#ifndef OPD_NO_DEBUG
	if ((op_sim_time() > wsn_test_time) && (my_address == wsn_test_address || my_address == wsn_test_address_2) )
		if (AP_DISCONNECTED)
			printf("Node <%d> is exiting IDLE and NOT calculating E before go SCAN\n", my_address);
		else if (READY_TO_TRANSMIT)
			printf("Node <%d> is exiting IDLE and NOT calculating E before going to DEFER\n", my_address);
		else if (SLEEP_NOW)
			printf("Node <%d> is exiting IDLE and IS calculating E before going to SLEEP\n", my_address);
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?