/************************************************************************ * 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; }
/************************************************************************ * 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; }