示例#1
0
/************************************************************************
 *                  requestHandler_insertRequests						*
 ************************************************************************
DESCRIPTION: RequestHandler module parsing function, called by the
			  measurement object when measuremnt request frame is received.
				performs the following:
				-	Parsers the measurement request frame.
				-	Inserts all requests into the queue.
				-	Initializes each request according to the its frame
					token, measurement token, measurement type, parallel,
					channel number, duration time and scan mode.
				-	The function updates the numOfWaitingRequests variable
					and set to zero the activeReqId.

			 Note:  The activeReqId contains the index for the first request
					that should be executed or to the current active request.

INPUT:      hRequestHandler	    -	RequestHandler handle.
			measurementMode     -	The MEasurement Object Mode.
			measurementFrameReq -   The New Frame request that was received.

OUTPUT:

RETURN:     TI_OK on success, TI_NOK otherwise
************************************************************************/
TI_STATUS requestHandler_insertRequests(TI_HANDLE hRequestHandler,
                                        EMeasurementMode measurementMode,
                                        TMeasurementFrameRequest measurementFrameReq)
{
	requestHandler_t	*pRequestHandler = (requestHandler_t *)hRequestHandler;
	TI_INT32               requestsLen = measurementFrameReq.requestsLen;
	TI_UINT8               singelRequestLen = 0;
	TI_UINT8               *requests = measurementFrameReq.requests;

	if (requestsLen < 2) {

		return TI_NOK;
	}

	/* Inserting all measurement request into the queues */
	while (requestsLen > 0) {
		if(insertMeasurementIEToQueue(hRequestHandler,
		                              measurementFrameReq.hdr->dialogToken,
		                              measurementMode,
		                              requests,
		                              &singelRequestLen) != TI_OK ) {
			requestHandler_clearRequests(hRequestHandler);
			return TI_NOK;
		}

		requestsLen -= singelRequestLen;
		requests += singelRequestLen;

	}

	pRequestHandler->activeRequestID = 0;


	return TI_OK;
}
示例#2
0
/************************************************************************
 *                  requestHandler_insertRequests						*
 ************************************************************************
DESCRIPTION: RequestHandler module parsing function, called by the 
			  measurement object when measuremnt request frame is received.
				performs the following:
				-	Parsers the measurement request frame.
				-	Inserts all requests into the queue.
				-	Initializes each request according to the its frame 
					token, measurement token, measurement type, parallel,
					channel number, duration time and scan mode.
				-	The function updates the numOfWaitingRequests variable
					and set to zero the activeReqId.

			 Note:  The activeReqId contains the index for the first request
					that should be executed or to the current active request.

INPUT:      hRequestHandler	    -	RequestHandler handle.
			measurementMode     -	The MEasurement Object Mode.
			measurementFrameReq -   The New Frame request that was received.

OUTPUT:		

RETURN:     TI_OK on success, TI_NOK otherwise
************************************************************************/
TI_STATUS requestHandler_insertRequests(TI_HANDLE hRequestHandler,
										EMeasurementMode measurementMode,
										TMeasurementFrameRequest measurementFrameReq)
{
	requestHandler_t	*pRequestHandler = (requestHandler_t *)hRequestHandler;
    TI_INT32               requestsLen = measurementFrameReq.requestsLen;
    TI_UINT8               singelRequestLen = 0;
    TI_UINT8               *requests = measurementFrameReq.requests;
    TI_UINT16              frameToken = 0;

    TRACE1(pRequestHandler->hReport, REPORT_SEVERITY_ERROR, 
           "requestHandler_insertRequests: requestsLen = %d\n", requestsLen);

	if (requestsLen < 2)
    {
        TRACE0(pRequestHandler->hReport, REPORT_SEVERITY_ERROR, ": Invalid length of the data.\n");

        return TI_NOK;
    }

	/* Inserting all measurement request into the queues */
	while (requestsLen > 0)
	{
        frameToken = (TI_UINT16)measurementFrameReq.dialogToken;
        
		if(insertMeasurementIEToQueue(hRequestHandler, 
                                       frameToken, 
                                       measurementMode, 
                                       requests,
                                       &singelRequestLen) != TI_OK )
        {
            TRACE0(pRequestHandler->hReport, REPORT_SEVERITY_ERROR, "requestHandler_insertRequests: Failed to insert element to Queue\n");
            requestHandler_clearRequests(hRequestHandler);
			return TI_NOK;
        }

        TRACE2(pRequestHandler->hReport, REPORT_SEVERITY_INFORMATION, 
               "requestHandler_insertRequests: requestsLen = %d, singelRequestLen = %d\n",requestsLen, singelRequestLen);
		requestsLen -= singelRequestLen;
		requests += singelRequestLen;
      
	}

	pRequestHandler->activeRequestID = 0;
	
TRACE2(pRequestHandler->hReport, REPORT_SEVERITY_INFORMATION, ": Inserted into queue: activeRequestID = %d, numOfWaitingRequests = %d\n",					pRequestHandler->activeRequestID, pRequestHandler->numOfWaitingRequests);

	return TI_OK;
}
static void measurementMgrSM_resetParams(measurementMgr_t *pMeasurementMgr)
{
	/* clear the waiting requests */
	requestHandler_clearRequests(pMeasurementMgr->hRequestH);

	/* clearing reports data base */
#ifdef XCC_MODULE_INCLUDED
	os_memoryZero(pMeasurementMgr->hOs,&(pMeasurementMgr->XCCFrameReport),
	              sizeof(RM_report_frame_t));
#endif
	os_memoryZero(pMeasurementMgr->hOs,&(pMeasurementMgr->dot11hFrameReport),
	              sizeof(MeasurementReportFrame_t));

	pMeasurementMgr->frameLength = 0;
	pMeasurementMgr->nextEmptySpaceInReport = 0;
	pMeasurementMgr->measuredChannelID = 0;
	pMeasurementMgr->currentFrameType = MSR_FRAME_TYPE_NO_ACTIVE;
}