1a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
2a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * MeasurementSrv.h
3a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
4a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * All rights reserved.
6a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
7a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Redistribution and use in source and binary forms, with or without
8a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * modification, are permitted provided that the following conditions
9a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * are met:
10a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
11a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Redistributions of source code must retain the above copyright
12a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    notice, this list of conditions and the following disclaimer.
13a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Redistributions in binary form must reproduce the above copyright
14a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    notice, this list of conditions and the following disclaimer in
15a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    the documentation and/or other materials provided with the
16a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    distribution.
17a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  * Neither the name Texas Instruments nor the names of its
18a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    contributors may be used to endorse or promote products derived
19a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *    from this software without specific prior written permission.
20a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
21a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
33a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
34a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \file MeasurementSrv.h
35a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  \brief This file include private definitions for the Measurement SRV module.
36ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt *  \author Ronen Kalish
37a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  \date 08-November-2005
38a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
39a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
40a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#ifndef __MEASUREMENT_SRV_H__
41a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define __MEASUREMENT_SRV_H__
42a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
43a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "TWDriverInternal.h"
44a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "MacServices_api.h"
45a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "fsm.h"
46a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#include "MeasurementSrvSM.h"
47a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
48a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
49a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
50a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  Constant definitions.
51a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
52a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
53a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Time in milliseconds to receive a command complete for measure start / stop from the FW */
54a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MSR_FW_GUARD_TIME   100
55a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define DEF_SAMPLE_INTERVAL             (100)   /* expressed in microsec */
56a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define NOISE_HISTOGRAM_THRESHOLD           100
57a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/* Get param callback flags  */
58a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MSR_SRV_WAITING_CHANNEL_LOAD_RESULTS        0x01 /* channel load results are still pending */
59a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#define MSR_SRV_WAITING_NOISE_HIST_RESULTS          0x02 /* noise histogram results are still pending */
60a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
61a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
62a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
63a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  Enums.
64a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
65a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
66a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
67a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
68a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
69a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
70a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  Typedefs.
71a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
72a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
73a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
74a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
75a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
76a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  Structure definitions.
77a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
78a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
79a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
80a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/** \struct measurementSRV_t
81a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief This structure contains the measurement SRV object data
82a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
83a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidttypedef struct
84a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt{
85a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TMediumOccupancy            mediumOccupancyResults; /**< channel load results buffer */
86a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TNoiseHistogramResults      noiseHistogramResults;  /**< noise histogram results buffer */
87a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
88a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    /* module handles */
89a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hOS;                            /**< OS object handle */
90a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hReport;                        /**< report object handle */
91a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hPowerSaveSRV;                  /**< power save SRV object handle */
92a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hCmdBld;                        /**< Command Builder object handle */
93a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hEventMbox;                     /**< Event Mbox handle */
94a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hTimer    ;                     /**< Timer Module handle */
95a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    /* CB functions and objects */
96a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TMeasurementSrvCompleteCb measurmentCompleteCBFunc;
97a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                        /**<
98a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * upper layer (measurement manager) measurement complete
99a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * callback function
100a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         */
101a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           measurementCompleteCBObj;       /**<
102a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * upper layer (measurement manager) measurement complete
103a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * callback object
104a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         */
105a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
106a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TCmdResponseCb      commandResponseCBFunc;          /**<
107a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * upper layer command response CB, used for both start
108a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * and stop. Passed down to the HAL and called when
109a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * the measurement command has been received by the FW
110a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         */
111a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           commandResponseCBObj;           /**<
112a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * object parameter passed to the commandResposeFunc by
113a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * the HAL when it is called
114a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         */
115a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
116a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TFailureEventCb     failureEventFunc;   /**<
117a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                            * upper layer Failure Event CB.
118a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                            * called when the scan command has been Timer Expiry
119a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                            */
120a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           failureEventObj;        /**<
121a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                            * object parameter passed to the failureEventFunc
122a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                            * when it is called
123a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                            */
124a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    /* Timers */
125a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hRequestTimer[ MAX_NUM_OF_MSR_TYPES_IN_PARALLEL ];
126a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                        /**< Timers for different measurement types */
127a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_BOOL             bRequestTimerRunning[ MAX_NUM_OF_MSR_TYPES_IN_PARALLEL ];
128a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                        /**< Indicates whether each request timer is running */
129a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_HANDLE           hStartStopTimer;                /**< Timer for start / stop commands guard */
130a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_BOOL             bStartStopTimerRunning;         /**<
131a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * Indicates whether the start / stop command guard
132a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * timer is running
133a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         */
134a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    /* Misc stuff */
135a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_BOOL             bInRequest;                     /**<
136a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * Indicates whether the SM is run within
137a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * the measurement request context (if so, to avoid
138a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * re-entrance, the complete function shouldn't
139a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * be called on failure, but rather an invalid
140a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * status should be returned)
141a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         */
142a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_STATUS           returnStatus;                   /**<
143a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * Holds the return code to the upper layer
144a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * Used to save errors during SM operation.
145a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         */
146a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_BOOL             bSendNullDataWhenExitPs;        /**< whether to send NULL data frame when exiting
147a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * driver mode
148a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         */
149a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    /* state machine */
150a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    fsm_stateMachine_t* SM;                            /**<
151a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * state machines for different
152a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * scan types
153a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         */
154a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    measurements_SRVSMStates_e  SMState;                /**< state machine current states */
155a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    /* measurement request */
156a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TMeasurementRequest     msrRequest;                 /**< measurement request parameters */
157a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TMeasurementReply       msrReply;                   /**< measurement reply values */
158a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT32               requestRecptionTimeStampMs; /**< The time in which the request was received. */
159a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT32               timeToRequestExpiryMs;      /**<
160a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * The duration (in ms) from request receiption
161a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * until it should actually start. Request is
162a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * discarded if a longer period is required
163a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         */
164a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt    TI_UINT8                pendingParamCBs;            /**<
165a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * a bitmap indicating which get_param CBs are
166a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * currently pending (noise histogram and/or
167a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         * channel load).
168a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                                         */
169a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt} measurementSRV_t;
170a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
171a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
172a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
173a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  External data definitions.
174a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
175a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
176a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
177a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/*
178a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
179a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *  External functions definitions
180a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ***********************************************************************
181a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
182a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
183a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
184ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt * \author Ronen Kalish\n
185a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \date 08-November-2005\n
186a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Creates the measurement SRV object
187a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
188a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Function Scope \e Public.\n
189a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hOS - handle to the OS object.\n
190a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return a handle to the measurement SRV object, NULL if an error occurred.\n
191a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
192a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_HANDLE MacServices_measurementSRV_create( TI_HANDLE hOS );
193a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
194a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
195ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt * \author Ronen Kalish\n
196a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \date 08-November-2005\n
197a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Initializes the measurement SRV object
198a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
199a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Function Scope \e Public.\n
200a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hMeasurementSRV - handle to the measurement SRV object.\n
201a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hReport - handle to the report object.\n
202a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hCmdBld - handle to the Command Builder object.\n
203a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hEventMbox - handle to the Event Mbox object.\n
204a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hPowerSaveSRV - handle to the power save SRV object.\n
205a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hTimer - handle to the Timer module object.\n
206a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
207a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_STATUS MacServices_measurementSRV_init (TI_HANDLE hMeasurementSRV,
208a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                           TI_HANDLE hReport,
209a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                           TI_HANDLE hCmdBld,
210a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                           TI_HANDLE hEventMbox,
211a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                           TI_HANDLE hPowerSaveSRV,
212a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                           TI_HANDLE hTimer);
213a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
214a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
215ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt * \author Ronen Kalish\n
216a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \date 08-November-2005\n
217a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Destroys the measurement SRV object
218a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
219a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Function Scope \e Public.\n
220a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hMeasurementSRV - handle to the measurement SRV object.\n
221a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
222a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid MacServices_measurementSRV_destroy( TI_HANDLE hMeasurementSRV );
223a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
224a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
225ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt * \author Ronen Kalish\n
226a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \date 13-November-2005\n
227a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Checks whether a beacon measurement is part of current measurement request
228a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
229a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Function Scope \e Private.\n
230a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hMeasurementSRV - handle to the measurement SRV object.\n
231a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return TI_TRUE if a beacon measurement is part of current request, TI_FALSE otherwise.\n
232a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
233a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_BOOL measurementSRVIsBeaconMeasureIncluded( TI_HANDLE hMeasurementSRV );
234a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
235a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
236ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt * \author Ronen Kalish\n
237a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \date 15-November-2005\n
238a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Finds the index for the measurement request with the shortest period
239a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * (the one that has now completed).\n
240a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
241a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Function Scope \e Private.\n
242a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hMeasurementSRV - handle to the measurement SRV object.\n
243a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return index of the measurement request with the shortest duration.\n
244a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
245a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_INT32 measurementSRVFindMinDuration( TI_HANDLE hMeasurementSRV );
246a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
247a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
248ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt * \author Ronen Kalish\n
249a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \date 15-November-2005\n
250a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Handles an AP discovery timer expiry, by setting necessary values in the
251a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * reply struct.\n
252a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
253a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Function Scope \e Private.\n
254a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hMeasurementSRV - handle to the measurement SRV object.\n
255a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param requestIndex - index of the beacon request in the request structure.\n
256a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
257a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid measurementSRVHandleBeaconMsrComplete( TI_HANDLE hMeasurementSRV, TI_INT32 requestIndex );
258a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
259a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
260ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt * \author Ronen Kalish\n
261a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \date 15-November-2005\n
262a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Handles a channel load timer expiry, by requesting channel load
263a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * results from the FW.\n
264a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
265a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Function Scope \e Private.\n
266a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hMeasurementSRV - handle to the measurement SRV object.\n
267a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param requestIndex - index of the channel load request in the request structure.\n
268a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
269a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid measurementSRVHandleChannelLoadComplete( TI_HANDLE hMeasurementSRV, TI_INT32 requestIndex );
270a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
271a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
272ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt * \author Ronen Kalish\n
273a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \date 15-November-2005\n
274a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Handles a nois histogram timer expiry, by requesting noise histogram
275a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * reaults from the FW.\n
276a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
277a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Function Scope \e Private.\n
278a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hMeasurementSRV - handle to the measurement SRV object.\n
279a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param requestIndex - indexof the beacon request in the request structure.\n
280a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
281a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid measurementSRVHandleNoiseHistogramComplete( TI_HANDLE hMeasurementSRV, TI_INT32 requestIndex );
282a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
283a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
284ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt * \author Ronen Kalish\n
285a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \date 16-November-2005\n
286a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Checks whether all measuremtn types had completed and all param CBs had been called.\n
287a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
288a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Function Scope \e Public.\n
289a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hMeasurementSRV - handle to the measurement SRV object.\n
290a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param status - the get_param call status.\n
291a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param CB_buf - pointer to the results buffer (already on the measurement SRV object)
292a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
293a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_BOOL measurementSRVIsMeasurementComplete( TI_HANDLE hMeasurementSRV );
294a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
295a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/**
296ddac9c138c5b4b16b99fb8bc5f0f10418efa1029Dmitry Shmidt * \author Ronen Kalish\n
297a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \date 17-November-2005\n
298a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \brief Finds a measure type index in the measure request array.\n
299a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *
300a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * Function Scope \e Public.\n
301a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param hMeasurementSRV - handle to the measurement SRV object.\n
302a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \param type - the measure type to look for.\n
303a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt * \return the type index, -1 if not found.\n
304a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt */
305a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtTI_INT32 measurementSRVFindIndexByType( TI_HANDLE hMeasurementSRV, EMeasurementType type );
306a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
307a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt/****************************************************************************************
308a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt *                        measurementSRVRegisterFailureEventCB                                                  *
309a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt ****************************************************************************************
310a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtDESCRIPTION: Registers a failure event callback for scan error notifications.
311a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
312a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
313a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtINPUT:      - hMeasurementSRV   - handle to the Measurement SRV object.
314a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt            - failureEventCB        - the failure event callback function.\n
315a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt            - hFailureEventObj  - handle to the object passed to the failure event callback function.
316a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
317a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtOUTPUT:
318a615fb1650af6e111053506f1b764b28a5b4631dDmitry ShmidtRETURN:    void.
319a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt****************************************************************************************/
320a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid measurementSRVRegisterFailureEventCB( TI_HANDLE hMeasurementSRV,
321a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt                                     void * failureEventCB, TI_HANDLE hFailureEventObj );
322a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
323a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidtvoid measurementSRV_restart( TI_HANDLE hMeasurementSRV);
324a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
325a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
326a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt#endif /* __MEASUREMENT_SRV_H__ */
327a615fb1650af6e111053506f1b764b28a5b4631dDmitry Shmidt
328