⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opnetwork_capture_mode_ecc.ps.c

📁 基于OPNET的无线电网络仿真
💻 C
字号:
/* opnetwork_capture_mode_ecc.ps.c */
/*
/****************************************/
/*		  Copyright (c) 1993			*/
/*			by MIL 3, Inc.				*/
/*		(A Delaware Corporation)		*/
/*	3400 International Drive,  N.W.		*/
/*		Washington, D.C., U.S.A.		*/
/*			All Rights Reserved.		*/
/****************************************/

#include <opnet.h>


void
opnetwork_capture_mode_ecc (pkptr)
	Packet*		pkptr;
    {
	int			pklen, num_errs, accept;
	double		ecc_thresh;

	/** Determine acceptability of given packet at receiver. **/
	FIN (opnetwork_capture_mode_ecc (pkptr))

	/* Do not calculate the acceptability if packet is not acceptable */
	if (op_td_is_set (pkptr, OPC_TDA_RA_PK_ACCEPT) && 
		(op_td_get_int (pkptr, OPC_TDA_RA_PK_ACCEPT) == OPC_FALSE))
		{
		FOUT
		}
	else
		{

		/* Do not accept packets that were received	*/
		/* when the node was disabled.				*/
		if (op_td_is_set (pkptr, OPC_TDA_RA_ND_FAIL))
			accept = OPC_FALSE;
		else
			{
			/* Obtain the error correction threshold of the receiver. */
			ecc_thresh = op_td_get_dbl (pkptr, OPC_TDA_RA_ECC_THRESH);

			/* Obtain length of packet. */
			pklen = op_pk_total_size_get (pkptr);

			/* Obtain number of errors in packet. */
			num_errs = op_td_get_int (pkptr, OPC_TDA_RA_NUM_ERRORS);
	
			/* Test if bit errors exceed threshold. */
			if (pklen == 0)
				accept = OPC_TRUE;
			else
				accept = ((((double) num_errs) / pklen) <= ecc_thresh) ? OPC_TRUE : OPC_FALSE;
			}

		/* Place flag indicating accept/reject in transmission data block. */
		op_td_set_int (pkptr, OPC_TDA_RA_PK_ACCEPT, accept);

		/* In either case the receiver channel is no longer locked. */
		/*rx_ch_obid = op_td_get_int (pkptr, OPC_TDA_RA_RX_CH_OBJID);
		op_ima_obj_attr_set (rx_ch_obid, "signal lock", OPC_BOOLINT_DISABLED);*/
	
		FOUT
		}
	}

⌨️ 快捷键说明

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