Esempio n. 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;
}
Esempio n. 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;
}