164064216a8433360745f69edddce19a606659163The Android Open Source Project 264064216a8433360745f69edddce19a606659163The Android Open Source Project/**************************************************************************** 364064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+** 464064216a8433360745f69edddce19a606659163The Android Open Source Project**| |** 564064216a8433360745f69edddce19a606659163The Android Open Source Project**| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved. |** 664064216a8433360745f69edddce19a606659163The Android Open Source Project**| All rights reserved. |** 764064216a8433360745f69edddce19a606659163The Android Open Source Project**| |** 864064216a8433360745f69edddce19a606659163The Android Open Source Project**| Redistribution and use in source and binary forms, with or without |** 964064216a8433360745f69edddce19a606659163The Android Open Source Project**| modification, are permitted provided that the following conditions |** 1064064216a8433360745f69edddce19a606659163The Android Open Source Project**| are met: |** 1164064216a8433360745f69edddce19a606659163The Android Open Source Project**| |** 1264064216a8433360745f69edddce19a606659163The Android Open Source Project**| * Redistributions of source code must retain the above copyright |** 1364064216a8433360745f69edddce19a606659163The Android Open Source Project**| notice, this list of conditions and the following disclaimer. |** 1464064216a8433360745f69edddce19a606659163The Android Open Source Project**| * Redistributions in binary form must reproduce the above copyright |** 1564064216a8433360745f69edddce19a606659163The Android Open Source Project**| notice, this list of conditions and the following disclaimer in |** 1664064216a8433360745f69edddce19a606659163The Android Open Source Project**| the documentation and/or other materials provided with the |** 1764064216a8433360745f69edddce19a606659163The Android Open Source Project**| distribution. |** 1864064216a8433360745f69edddce19a606659163The Android Open Source Project**| * Neither the name Texas Instruments nor the names of its |** 1964064216a8433360745f69edddce19a606659163The Android Open Source Project**| contributors may be used to endorse or promote products derived |** 2064064216a8433360745f69edddce19a606659163The Android Open Source Project**| from this software without specific prior written permission. |** 2164064216a8433360745f69edddce19a606659163The Android Open Source Project**| |** 2264064216a8433360745f69edddce19a606659163The Android Open Source Project**| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |** 2364064216a8433360745f69edddce19a606659163The Android Open Source Project**| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |** 2464064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |** 2564064216a8433360745f69edddce19a606659163The Android Open Source Project**| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |** 2664064216a8433360745f69edddce19a606659163The Android Open Source Project**| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |** 2764064216a8433360745f69edddce19a606659163The Android Open Source Project**| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |** 2864064216a8433360745f69edddce19a606659163The Android Open Source Project**| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |** 2964064216a8433360745f69edddce19a606659163The Android Open Source Project**| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |** 3064064216a8433360745f69edddce19a606659163The Android Open Source Project**| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |** 3164064216a8433360745f69edddce19a606659163The Android Open Source Project**| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |** 3264064216a8433360745f69edddce19a606659163The Android Open Source Project**| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |** 3364064216a8433360745f69edddce19a606659163The Android Open Source Project**| |** 3464064216a8433360745f69edddce19a606659163The Android Open Source Project**+-----------------------------------------------------------------------+** 3564064216a8433360745f69edddce19a606659163The Android Open Source Project****************************************************************************/ 3664064216a8433360745f69edddce19a606659163The Android Open Source Project 3764064216a8433360745f69edddce19a606659163The Android Open Source Project/***************************************************************************/ 3864064216a8433360745f69edddce19a606659163The Android Open Source Project/* */ 3964064216a8433360745f69edddce19a606659163The Android Open Source Project/* MODULE: measurementMgr.h */ 4064064216a8433360745f69edddce19a606659163The Android Open Source Project/* PURPOSE: measurement Manager module header file */ 4164064216a8433360745f69edddce19a606659163The Android Open Source Project/* */ 4264064216a8433360745f69edddce19a606659163The Android Open Source Project/***************************************************************************/ 4364064216a8433360745f69edddce19a606659163The Android Open Source Project 4464064216a8433360745f69edddce19a606659163The Android Open Source Project 4564064216a8433360745f69edddce19a606659163The Android Open Source Project 4664064216a8433360745f69edddce19a606659163The Android Open Source Project 4764064216a8433360745f69edddce19a606659163The Android Open Source Project#ifndef __MEASUREMENTMGR_H__ 4864064216a8433360745f69edddce19a606659163The Android Open Source Project#define __MEASUREMENTMGR_H__ 4964064216a8433360745f69edddce19a606659163The Android Open Source Project 5064064216a8433360745f69edddce19a606659163The Android Open Source Project 5164064216a8433360745f69edddce19a606659163The Android Open Source Project#include "report.h" 5264064216a8433360745f69edddce19a606659163The Android Open Source Project#include "paramOut.h" 5364064216a8433360745f69edddce19a606659163The Android Open Source Project#include "requestHandler.h" 5464064216a8433360745f69edddce19a606659163The Android Open Source Project#include "measurementMgrSM.h" 5564064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef EXC_MODULE_INCLUDED 5664064216a8433360745f69edddce19a606659163The Android Open Source Project #include "excRMMngrParam.h" 5764064216a8433360745f69edddce19a606659163The Android Open Source Project#endif 5864064216a8433360745f69edddce19a606659163The Android Open Source Project 5964064216a8433360745f69edddce19a606659163The Android Open Source Project 6064064216a8433360745f69edddce19a606659163The Android Open Source Project/* Functions Pointers Definitions */ 6164064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef TI_STATUS (*parserFrameReq_t) (TI_HANDLE hMeasurementMgr, 6264064216a8433360745f69edddce19a606659163The Android Open Source Project UINT8 *pData, INT32 dataLen, 6364064216a8433360745f69edddce19a606659163The Android Open Source Project measurement_frameRequest_t *frameReq); 6464064216a8433360745f69edddce19a606659163The Android Open Source Project 6564064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef BOOL (*isTypeValid_t) (TI_HANDLE hMeasurementMgr, 6664064216a8433360745f69edddce19a606659163The Android Open Source Project measurement_type_e type, 6764064216a8433360745f69edddce19a606659163The Android Open Source Project measurement_scanMode_e scanMode); 6864064216a8433360745f69edddce19a606659163The Android Open Source Project 6964064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef TI_STATUS (*buildRejectReport_t) (TI_HANDLE hMeasurementMgr, 7064064216a8433360745f69edddce19a606659163The Android Open Source Project MeasurementRequest_t *pRequestArr[], 7164064216a8433360745f69edddce19a606659163The Android Open Source Project UINT8 numOfRequestsInParallel, 7264064216a8433360745f69edddce19a606659163The Android Open Source Project measurement_rejectReason_e rejectReason); 7364064216a8433360745f69edddce19a606659163The Android Open Source Project 7464064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef TI_STATUS (*buildReport_t) (TI_HANDLE hMeasurementMgr, 7564064216a8433360745f69edddce19a606659163The Android Open Source Project MeasurementRequest_t request, 7664064216a8433360745f69edddce19a606659163The Android Open Source Project measurement_typeReply_t * reply); 7764064216a8433360745f69edddce19a606659163The Android Open Source Project 7864064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef TI_STATUS (*sendReportAndCleanObj_t)(TI_HANDLE hMeasurementMgr); 7964064216a8433360745f69edddce19a606659163The Android Open Source Project 8064064216a8433360745f69edddce19a606659163The Android Open Source Project 8164064216a8433360745f69edddce19a606659163The Android Open Source Project 8264064216a8433360745f69edddce19a606659163The Android Open Source Projecttypedef struct 8364064216a8433360745f69edddce19a606659163The Android Open Source Project{ 8464064216a8433360745f69edddce19a606659163The Android Open Source Project 8564064216a8433360745f69edddce19a606659163The Android Open Source Project /* Timers */ 8664064216a8433360745f69edddce19a606659163The Android Open Source Project void * pActivationDelayTimer; 8764064216a8433360745f69edddce19a606659163The Android Open Source Project 8864064216a8433360745f69edddce19a606659163The Android Open Source Project 8964064216a8433360745f69edddce19a606659163The Android Open Source Project /* Methods */ 9064064216a8433360745f69edddce19a606659163The Android Open Source Project parserFrameReq_t parserFrameReq; 9164064216a8433360745f69edddce19a606659163The Android Open Source Project isTypeValid_t isTypeValid; 9264064216a8433360745f69edddce19a606659163The Android Open Source Project buildRejectReport_t buildRejectReport; 9364064216a8433360745f69edddce19a606659163The Android Open Source Project buildReport_t buildReport; 9464064216a8433360745f69edddce19a606659163The Android Open Source Project sendReportAndCleanObj_t sendReportAndCleanObj; 9564064216a8433360745f69edddce19a606659163The Android Open Source Project 9664064216a8433360745f69edddce19a606659163The Android Open Source Project 9764064216a8433360745f69edddce19a606659163The Android Open Source Project /* Data */ 9864064216a8433360745f69edddce19a606659163The Android Open Source Project BOOL Enabled; 9964064216a8433360745f69edddce19a606659163The Android Open Source Project BOOL Connected; 10064064216a8433360745f69edddce19a606659163The Android Open Source Project 10164064216a8433360745f69edddce19a606659163The Android Open Source Project UINT8 servingChannelID; 10264064216a8433360745f69edddce19a606659163The Android Open Source Project UINT8 measuredChannelID; 10364064216a8433360745f69edddce19a606659163The Android Open Source Project 10464064216a8433360745f69edddce19a606659163The Android Open Source Project measurement_mode_e Mode; 10564064216a8433360745f69edddce19a606659163The Android Open Source Project UINT8 Capabilities; 10664064216a8433360745f69edddce19a606659163The Android Open Source Project BOOL isModuleRegistered; 10764064216a8433360745f69edddce19a606659163The Android Open Source Project 10864064216a8433360745f69edddce19a606659163The Android Open Source Project UINT16 trafficIntensityThreshold; 10964064216a8433360745f69edddce19a606659163The Android Open Source Project UINT16 maxDurationOnNonServingChannel; 11064064216a8433360745f69edddce19a606659163The Android Open Source Project 11164064216a8433360745f69edddce19a606659163The Android Open Source Project 11264064216a8433360745f69edddce19a606659163The Android Open Source Project /* State Machine Params */ 11364064216a8433360745f69edddce19a606659163The Android Open Source Project fsm_stateMachine_t * pMeasurementMgrSm; 11464064216a8433360745f69edddce19a606659163The Android Open Source Project measurementMgrSM_States currentState; 11564064216a8433360745f69edddce19a606659163The Android Open Source Project 11664064216a8433360745f69edddce19a606659163The Android Open Source Project 11764064216a8433360745f69edddce19a606659163The Android Open Source Project /* Report Frame Params */ 11864064216a8433360745f69edddce19a606659163The Android Open Source Project#ifdef EXC_MODULE_INCLUDED 11964064216a8433360745f69edddce19a606659163The Android Open Source Project RM_report_frame_t excFrameReport; 12064064216a8433360745f69edddce19a606659163The Android Open Source Project#endif 12164064216a8433360745f69edddce19a606659163The Android Open Source Project MeasurementReportFrame_t dot11hFrameReport; 12264064216a8433360745f69edddce19a606659163The Android Open Source Project UINT16 nextEmptySpaceInReport; 12364064216a8433360745f69edddce19a606659163The Android Open Source Project UINT16 frameLength; 12464064216a8433360745f69edddce19a606659163The Android Open Source Project 12564064216a8433360745f69edddce19a606659163The Android Open Source Project 12664064216a8433360745f69edddce19a606659163The Android Open Source Project /* Request Frame Params */ 12764064216a8433360745f69edddce19a606659163The Android Open Source Project MeasurementRequest_t * currentRequest[MAX_NUM_REQ]; 12864064216a8433360745f69edddce19a606659163The Android Open Source Project UINT8 currentNumOfRequestsInParallel; 12964064216a8433360745f69edddce19a606659163The Android Open Source Project measurement_frameType_e currentFrameType; 13064064216a8433360745f69edddce19a606659163The Android Open Source Project UINT32 currentRequestStartTime; 13164064216a8433360745f69edddce19a606659163The Android Open Source Project measurement_frameRequest_t newFrameRequest; 13264064216a8433360745f69edddce19a606659163The Android Open Source Project 13364064216a8433360745f69edddce19a606659163The Android Open Source Project 13464064216a8433360745f69edddce19a606659163The Android Open Source Project /* EXC Traffic Stream Metrics measurement parameters */ 13564064216a8433360745f69edddce19a606659163The Android Open Source Project void *pTsMetricsReportTimer[MAX_NUM_OF_AC]; 13664064216a8433360745f69edddce19a606659163The Android Open Source Project BOOL isTsMetricsEnabled[MAX_NUM_OF_AC]; 13764064216a8433360745f69edddce19a606659163The Android Open Source Project 13864064216a8433360745f69edddce19a606659163The Android Open Source Project /* Handles to other modules */ 13964064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hRequestH; 14064064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hMacServices; 14164064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hRegulatoryDomain; 14264064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hExcMngr; 14364064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hSiteMgr; 14464064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hHalCtrl; 14564064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hMlme; 14664064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hTrafficMonitor; 14764064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hReport; 14864064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hOs; 14964064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hScr; 15064064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hHealthMonitor; 15164064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hApConn; 15264064216a8433360745f69edddce19a606659163The Android Open Source Project TI_HANDLE hTx; 15364064216a8433360745f69edddce19a606659163The Android Open Source Project} measurementMgr_t; 15464064216a8433360745f69edddce19a606659163The Android Open Source Project 15564064216a8433360745f69edddce19a606659163The Android Open Source Project 15664064216a8433360745f69edddce19a606659163The Android Open Source Project 15764064216a8433360745f69edddce19a606659163The Android Open Source Project 15864064216a8433360745f69edddce19a606659163The Android Open Source ProjectTI_STATUS measurementMgr_activateNextRequest(TI_HANDLE pContext); 15964064216a8433360745f69edddce19a606659163The Android Open Source Project 16064064216a8433360745f69edddce19a606659163The Android Open Source Project 16164064216a8433360745f69edddce19a606659163The Android Open Source Project 16264064216a8433360745f69edddce19a606659163The Android Open Source Project 16364064216a8433360745f69edddce19a606659163The Android Open Source Project#endif /* __MEASUREMENTMGR_H__*/ 16464064216a8433360745f69edddce19a606659163The Android Open Source Project 165