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

📄 p_ce_cesriop.cxx

📁 Cwenjian,zhongxing tongxindaimazhong de yige wenjian
💻 CXX
📖 第 1 页 / 共 2 页
字号:
        	if (pSignalPara == NULL)
        	{
        		/*CES_RLSA_ExceptionReport(CEMERROR_RIOP_PARAM_POINTER_IS_NULL,
                                         __LINE__,
                                         FILE_CES_CEM_RIOP);*/
                V_NextState(S_Idle);
        	}
            memcpy((VOID *)&(pVar->RIOPChangedPriorityVar), pSignalPara, sizeof(T_RIOPChangedPriority));
            
           	pVar->byCESRIOPPriority = pVar->RIOPChangedPriorityVar.byPriority;
            V_NextState(S_Idle);
        case E_O_R_RIOPSetAutoAdjust:
        	if (pSignalPara == NULL)
        	{
        		/*CES_RLSA_ExceptionReport(CEMERROR_RIOP_PARAM_POINTER_IS_NULL,
                                         __LINE__,
                                         FILE_CES_CEM_RIOP);*/
                V_NextState(S_Idle);
        	}
            memcpy((VOID *)&(pVar->RIOPSetAutoAdjustVar), pSignalPara, sizeof(T_RIOPAutoAdjust));
            
            if (pVar->RIOPSetAutoAdjustVar.bOpen == FALSE)
            {
                pVar->bEnableAutoAdjust	= FALSE;
            }
            else
            {
                pVar->bEnableAutoAdjust	= TRUE;
            }
            V_NextState(S_Idle);
        default:
            V_DefaultNextState();
        }
    } //lint !e744
    
}

/**************************************/
/*   procedures Entity                */
/**************************************/
/* Procedure : RIOPStopAllReportItem */
static VOID RIOPStopAllReportItem (VOID)
{
    T_P_CE_CESRIOPVars	* pVar;
    Integer	iStopLoop;

    //pVar	= (T_P_CE_CESRIOPVars *)R_GetVarSpacePtr();
    pVar	= (T_P_CE_CESRIOPVars *)V_GetSelfPriDataPtr();
    
    bStopAllReport = TRUE;
    pVar->byCESRIOPPriority = 0;
    
    for( iStopLoop=0; iStopLoop < MAX_CHM_OBSERVE_PROC_NUM; iStopLoop++ )
    {
    	pVar->RIOPProcessConfigTableArrayVar[iStopLoop].ucObserveProPriHi  = 0x0f;
    	pVar->RIOPProcessConfigTableArrayVar[iStopLoop].ucObserveProPriLow = 0x0f;
    }
    return;
}

/* Procedure : FillProcessTable */
static Boolean FillProcessTable (T_RIOPSetDyn  RIOPSetDynVar)
{
    T_P_CE_CESRIOPVars	* pVar;
    Integer	iFillProLoop;
    Integer	index;
    Boolean  IsSuccess = FALSE;

    //pVar	= (T_P_CE_CESRIOPVars *)R_GetVarSpacePtr();
    pVar	= (T_P_CE_CESRIOPVars *)V_GetSelfPriDataPtr();
 
    for( iFillProLoop = 0; iFillProLoop < MAX_OBSERVE_PROC_NUM; iFillProLoop++ )
    {
		if( ( 0 == RIOPSetDynVar.byProcType[0] ) && 
		    ( iFillProLoop < MAX_CHM_OBSERVE_PROC_NUM ) )
       	{
       		if( RIOPSetDynVar.byTraceSet[0] == 0xff)
       		{
       			bStopAllReport = true;
       		}
       		pVar->RIOPProcessConfigTableArrayVar[iFillProLoop].ucObserveProPriLow = RIOPSetDynVar.byTraceSet[0] & 0x0f;
			pVar->RIOPProcessConfigTableArrayVar[iFillProLoop].ucObserveProPriHi  = RIOPSetDynVar.byTraceSet[0] >> 4;
			IsSuccess = TRUE;
       	}
		else
       	{
			if( RIOPSetDynVar.byProcType[iFillProLoop] == 0 )
       		{
       			break;
       		}
       		else
       		{      		
       			for( index=0; index < MAX_CHM_OBSERVE_PROC_NUM; index++ )
       			{
       				if( RIOPSetDynVar.byProcType[iFillProLoop] == pVar->RIOPProcessConfigTableArrayVar[index].ObserveProName )
       				{
       					pVar->RIOPProcessConfigTableArrayVar[index].ucObserveProPriLow = RIOPSetDynVar.byTraceSet[iFillProLoop] & 0x0f;
						pVar->RIOPProcessConfigTableArrayVar[index].ucObserveProPriHi  = RIOPSetDynVar.byTraceSet[iFillProLoop] >> 4;
						IsSuccess = TRUE;
						break;
       				}
       			}
			}
		}
    }
    return IsSuccess;
}

/* Procedure : IsObserveEnable */
static Boolean IsObserveEnable (T_SIGNAL CESignal)
{
    T_P_CE_CESRIOPVars	* pVar;
    Integer	iObsLoop;
	WORD	wErrIdtmp;
    BYTE	PriNormal = RUNINFO_PRI_HIGHEST;
    BYTE	PriAbnormal = RUNINFO_PRI_HIGHEST;	
    BYTE	testProName;

    //pVar	= (T_P_CE_CESRIOPVars *)R_GetVarSpacePtr();
    pVar	= (T_P_CE_CESRIOPVars *)V_GetSelfPriDataPtr();
    
    wErrIdtmp = CESignal.wErrId & 0x0fff;
	if( wErrIdtmp == 0x0 )			//normal information
	{
		PriNormal = CESignal.byPriority;
		if( PriNormal >= pVar->byCESRIOPPriority )
    	{
    		for( iObsLoop=0; iObsLoop < MAX_CHM_OBSERVE_PROC_NUM; iObsLoop++ )
    		{
    			if( CESignal.wProcName == pVar->RIOPProcessConfigTableArrayVar[iObsLoop].ObserveProName )
    			{
    				if( PriNormal >= pVar->RIOPProcessConfigTableArrayVar[iObsLoop].ucObserveProPriHi )
    				{
    					return TRUE;
    				}
    				break;
    			}
    			else
    			{
    				;
    			}
    		}
    	}
	}
	else			//abnormal information
	{
		PriAbnormal	= CESignal.byPriority;
    	if( PriAbnormal >= pVar->byCESRIOPPriority )
    	{
    		for( iObsLoop=0; iObsLoop < MAX_CHM_OBSERVE_PROC_NUM; iObsLoop++ )
    		{
    			testProName = pVar->RIOPProcessConfigTableArrayVar[iObsLoop].ObserveProName;
    			if( CESignal.wProcName == testProName)
    			{
    				if( PriAbnormal >= pVar->RIOPProcessConfigTableArrayVar[iObsLoop].ucObserveProPriLow )
    				{
    					return TRUE;
    				}
    				break;
    			}
    			else
    			{
    				;
    			}
    		}
    	}		
	}

    return FALSE;
}    

/* Procedure : TransferToRIOReport */
static VOID TransferToRIOReport (T_SIGNAL * transCESignal, T_RIOReport * transRIOReportVar)
{
    T_P_CE_CESRIOPVars	* pVar;
    Time	CurrentTime;
    Integer	iTransLoop;

    //pVar	= (T_P_CE_CESRIOPVars *)R_GetVarSpacePtr();
    pVar	= (T_P_CE_CESRIOPVars *)V_GetSelfPriDataPtr();
    if ((NULL == pVar)||(NULL == transCESignal)||(NULL == transRIOReportVar))
    {
    	return;
    }
    
    CurrentTime = Now();
    TimeToClock(CurrentTime, &(transRIOReportVar->tRIclock));
    transRIOReportVar->LogicAddr	= R_GetLogicAddress();
    transRIOReportVar->dwPNO		= PNO_Construct(pVar->VitualPNO, pVar->byInstNO);
    transRIOReportVar->wErrId		= transCESignal->wErrId;
    transRIOReportVar->wSubErrId	= transCESignal->wSubErrId;
    transRIOReportVar->byPriority	= transCESignal->byPriority;
    memcpy(transRIOReportVar->RunInfo, transCESignal->RunInfoPtr, transCESignal->RunInfoLen);
    transRIOReportVar->RunInfoLen	= transCESignal->RunInfoLen;
    
    return;
}

/* Procedure : RIOPInitialProcessTable */
static VOID RIOPInitialProcessTable (VOID)
{
    T_P_CE_CESRIOPVars	* pVar;
    Integer	iInitLoop;

    //pVar	= (T_P_CE_CESRIOPVars *)R_GetVarSpacePtr();
    pVar	= (T_P_CE_CESRIOPVars *)V_GetSelfPriDataPtr();
    
	pVar->RIOPProcessConfigTableArrayVar[0].ObserveProName	= P_CE_Control;
    pVar->RIOPProcessConfigTableArrayVar[1].ObserveProName	= P_CE_Sync;
    pVar->RIOPProcessConfigTableArrayVar[2].ObserveProName	= P_CE_Paging;
    pVar->RIOPProcessConfigTableArrayVar[3].ObserveProName	= P_CE_Access;
    pVar->RIOPProcessConfigTableArrayVar[4].ObserveProName	= P_CE_FwdTraffic;
    pVar->RIOPProcessConfigTableArrayVar[5].ObserveProName	= P_CE_RevTraffic;
    pVar->RIOPProcessConfigTableArrayVar[6].ObserveProName	= P_CE_CSM;
    pVar->RIOPProcessConfigTableArrayVar[7].ObserveProName	= P_CE_OCNS;
    pVar->RIOPProcessConfigTableArrayVar[8].ObserveProName	= P_CE_CMNAPP;
    pVar->RIOPProcessConfigTableArrayVar[9].ObserveProName	= P_CE_Reserved;
	
	for( iInitLoop=0; iInitLoop < MAX_CHM_OBSERVE_PROC_NUM; iInitLoop++ )
	{
    	pVar->RIOPProcessConfigTableArrayVar[iInitLoop].ucObserveProPriHi	= 0x0f;
    	pVar->RIOPProcessConfigTableArrayVar[iInitLoop].ucObserveProPriLow	= 0x0f;
	}
	
	return;
}
#endif

⌨️ 快捷键说明

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