• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * CmdBldItrIE.c
3  *
4  * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  *  * Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  *  * Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in
15  *    the documentation and/or other materials provided with the
16  *    distribution.
17  *  * Neither the name Texas Instruments nor the names of its
18  *    contributors may be used to endorse or promote products derived
19  *    from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 
34 #define __FILE_ID__  FILE_ID_96
35 #include "osApi.h"
36 #include "report.h"
37 #include "CmdBld.h"
38 #include "CmdQueue_api.h"
39 
40 
cmdBld_ItrIeMemoryMap(TI_HANDLE hCmdBld,MemoryMap_t * apMap,void * fCb,TI_HANDLE hCb)41 TI_STATUS cmdBld_ItrIeMemoryMap (TI_HANDLE hCmdBld, MemoryMap_t *apMap, void *fCb, TI_HANDLE hCb)
42 {
43     TCmdBld *pCmdBld = (TCmdBld *)hCmdBld;
44 
45     /* Set information element header */
46     apMap->EleHdr.id  = ACX_MEM_MAP;
47     apMap->EleHdr.len = sizeof(*apMap) - sizeof(EleHdrStruct);
48 
49     return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_INTERROGATE, apMap, sizeof(*apMap), fCb, hCb, apMap);
50 }
51 
52 
53 /****************************************************************************
54  *                      cmdBld_ItrIeRoamimgStatisitics ()
55  ****************************************************************************
56  * DESCRIPTION: Get the ACX GWSI statistics
57  *
58  * INPUTS:
59  *
60  * OUTPUT:  None
61  *
62  * RETURNS: TI_OK or TI_NOK
63  ****************************************************************************/
cmdBld_ItrIeRoamimgStatisitics(TI_HANDLE hCmdBld,void * fCb,TI_HANDLE hCb,void * pCb)64 TI_STATUS cmdBld_ItrIeRoamimgStatisitics (TI_HANDLE  hCmdBld, void *fCb, TI_HANDLE hCb, void *pCb)
65 {
66     TCmdBld *pCmdBld = (TCmdBld *)hCmdBld;
67     ACXRoamingStatisticsTable_t acx;
68     ACXRoamingStatisticsTable_t * pCfg = &acx;
69 
70     /*
71      * Set information element header
72      */
73     pCfg->EleHdr.id  = ACX_ROAMING_STATISTICS_TBL;
74     pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct);
75 
76 
77     return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_INTERROGATE, pCfg, sizeof(*pCfg), fCb, hCb, pCb);
78 }
79 
80 
81 /****************************************************************************
82  *                      cmdBld_ItrIeErrorCnt ()
83  ****************************************************************************
84  * DESCRIPTION: Get the ACX GWSI counters
85  *
86  * INPUTS:
87  *
88  * OUTPUT:  None
89  *
90  * RETURNS: TI_OK or TI_NOK
91  ****************************************************************************/
cmdBld_ItrIeErrorCnt(TI_HANDLE hCmdBld,void * fCb,TI_HANDLE hCb,void * pCb)92 TI_STATUS cmdBld_ItrIeErrorCnt (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb, void *pCb)
93 {
94     TCmdBld *pCmdBld = (TCmdBld *)hCmdBld;
95     ACXErrorCounters_t acx;
96     ACXErrorCounters_t * pCfg = &acx;
97 
98     /*
99      * Set information element header
100      */
101     pCfg->EleHdr.id  = ACX_ERROR_CNT;
102     pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct);
103 
104 
105     return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_INTERROGATE, pCfg, sizeof(*pCfg), fCb, hCb, pCb);
106 }
107 
108 
109 /****************************************************************************
110  *                      cmdBld_ItrIeRSSI ()
111  ****************************************************************************
112  * DESCRIPTION: Configure/Interrogate StationId information element to/from
113  *      the wlan hardware.
114  *      This information element specifies the MAC Address assigned to the
115  *      STATION or AP.
116  *      This default value is the permanent MAC address that is stored in the
117  *      adaptor's non-volatile memory.
118  *
119  * INPUTS:  None
120  *
121  * OUTPUT:  None
122  *
123  * RETURNS: TI_OK or TI_NOK
124  ****************************************************************************/
cmdBld_ItrIeRSSI(TI_HANDLE hCmdBld,void * fCb,TI_HANDLE hCb,TI_UINT8 * pCb)125 TI_STATUS cmdBld_ItrIeRSSI (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb, TI_UINT8* pCb)
126 {
127     TCmdBld *pCmdBld = (TCmdBld *)hCmdBld;
128     ACXRoamingStatisticsTable_t AcxElm_GetAverageRSSI;
129     ACXRoamingStatisticsTable_t* pCfg = &AcxElm_GetAverageRSSI;
130 
131     /* Set information element header */
132     pCfg->EleHdr.id = ACX_ROAMING_STATISTICS_TBL;
133     pCfg->EleHdr.len = sizeof(ACXRoamingStatisticsTable_t) - sizeof(EleHdrStruct);
134 
135 
136     return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_INTERROGATE, pCfg, sizeof(ACXRoamingStatisticsTable_t), fCb, hCb, pCb);
137 }
138 
139 
140 /****************************************************************************
141  *                      cmdBld_ItrIeSg()
142  ****************************************************************************
143  * DESCRIPTION: Get the BTH-WLAN co-exsistance parameters from the Fw
144  *
145  *
146  * OUTPUT:  None
147  *
148  * RETURNS: TI_OK or TI_NOK
149  ****************************************************************************/
cmdBld_ItrIeSg(TI_HANDLE hCmdBld,void * fCb,TI_HANDLE hCb,void * pCb)150 TI_STATUS cmdBld_ItrIeSg (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb, void* pCb)
151 {
152     TCmdBld *pCmdBld = (TCmdBld *)hCmdBld;
153     ACXBluetoothWlanCoParamsStruct  AcxElm_BluetoothWlanEnable;
154     ACXBluetoothWlanCoParamsStruct* pCfg = &AcxElm_BluetoothWlanEnable;
155 
156     TRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_ItrIeSg \n");
157 
158     /* Set information element header */
159     pCfg->EleHdr.id = ACX_SG_CFG;
160     pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct);
161 
162    return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_INTERROGATE, pCfg, sizeof(ACXBluetoothWlanCoParamsStruct), fCb, hCb, pCb);
163 }
164 /****************************************************************************
165  *                      cmdBld_ItrIeRateParams()
166  ****************************************************************************
167  * DESCRIPTION: Get the rate managment configuration
168  *
169  *
170  * OUTPUT:  None
171  *
172  * RETURNS: TI_OK or TI_NOK
173  ****************************************************************************/
174 
cmdBld_ItrIeRateParams(TI_HANDLE hCmdBld,void * fCb,TI_HANDLE hCb,void * pCb)175 TI_STATUS cmdBld_ItrIeRateParams (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb, void* pCb)
176 {
177     TCmdBld *pCmdBld = (TCmdBld *)hCmdBld;
178 	AcxRateMangeParams  RateParams;
179     AcxRateMangeParams* pCfg = &RateParams;
180 
181     TRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_ItrIeRateParams \n");
182 
183     /* Set information element header */
184     pCfg->EleHdr.id = ACX_GET_RATE_MAMAGEMENT_PARAMS;
185     pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct);
186 
187     return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_INTERROGATE, pCfg, sizeof(AcxRateMangeParams), fCb, hCb, pCb);
188 }
189 
190 /****************************************************************************
191  *                      cmdBld_ItrIePowerConsumptionstat()
192  ****************************************************************************
193  * DESCRIPTION: Get the Power consumption statistic from the Fw
194  *
195  *
196  * OUTPUT:  None
197  *
198  * RETURNS: TI_OK or TI_NOK
199  ****************************************************************************/
cmdBld_ItrIePowerConsumptionstat(TI_HANDLE hCmdBld,void * fCb,TI_HANDLE hCb,void * pCb)200 TI_STATUS cmdBld_ItrIePowerConsumptionstat(TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb, void* pCb)
201 {
202     TCmdBld *pCmdBld = (TCmdBld *)hCmdBld;
203     ACXPowerConsumptionTimeStat_t  AcxPowerConsumptionStat;
204     ACXPowerConsumptionTimeStat_t* pCfg = &AcxPowerConsumptionStat;
205 
206     TRACE0(pCmdBld->hReport, REPORT_SEVERITY_INFORMATION, "cmdBld_ItrIePowerConsumptionstat \n");
207 
208     /* Set information element header */
209     pCfg->EleHdr.id = ACX_PWR_CONSUMPTION_STATISTICS;
210     pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct);
211 
212     return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_INTERROGATE, pCfg, sizeof(AcxPowerConsumptionStat), fCb, hCb, pCb);
213 
214 }
215 
216 
217 
218 /****************************************************************************
219  *                      cmdBld_ItrIeStatistics ()
220  ****************************************************************************
221  * DESCRIPTION: Print the statistics from the input IE statistics
222  *
223  * INPUTS:
224  *          ACXStatisticsStruct* pElem  The Statistics information element
225  *                                      to be printed
226  *
227  * OUTPUT:  None
228  *
229  * RETURNS: TI_OK or TI_NOK
230  ****************************************************************************/
cmdBld_ItrIeStatistics(TI_HANDLE hCmdBld,void * fCb,TI_HANDLE hCb,void * pCb)231 TI_STATUS cmdBld_ItrIeStatistics (TI_HANDLE hCmdBld, void *fCb, TI_HANDLE hCb, void *pCb)
232 {
233     TCmdBld *pCmdBld = (TCmdBld *)hCmdBld;
234     ACXStatistics_t *pACXStatistics = (ACXStatistics_t *)pCb;
235 
236     /* Set information element header */
237     pACXStatistics->EleHdr.id  = ACX_STATISTICS;
238     pACXStatistics->EleHdr.len = sizeof(*pACXStatistics) - sizeof(EleHdrStruct);
239 
240     return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_INTERROGATE, pCb, sizeof(*pACXStatistics), fCb, hCb, pCb);
241 }
242 
243 
244 /****************************************************************************
245  *                      cmdBld_ItrIeMediumOccupancy ()
246  ****************************************************************************
247  * DESCRIPTION: Get the Medium Occupancy.
248  *
249  * INPUTS:
250  *
251  * OUTPUT:  None
252  *
253  * RETURNS: TI_OK or TI_NOK
254  ****************************************************************************/
cmdBld_ItrIeMediumOccupancy(TI_HANDLE hCmdBld,TInterrogateCmdCbParams mediumUsageCBParams)255 TI_STATUS cmdBld_ItrIeMediumOccupancy (TI_HANDLE hCmdBld,
256                                        TInterrogateCmdCbParams  mediumUsageCBParams)
257 {
258     TCmdBld *pCmdBld = (TCmdBld *)hCmdBld;
259     ACXMediumUsage_t    medium;
260     ACXMediumUsage_t    *pCfg = &medium;
261 
262     /* Set information element header */
263     pCfg->EleHdr.id  = ACX_MEDIUM_USAGE;
264     pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct);
265 
266     return cmdQueue_SendCommand (pCmdBld->hCmdQueue,
267                                  CMD_INTERROGATE,
268                                  pCfg,
269                                  sizeof(*pCfg),
270                                  mediumUsageCBParams.fCb,
271                                  mediumUsageCBParams.hCb,
272                                  mediumUsageCBParams.pCb);
273 }
274 
275 
276 /****************************************************************************
277  *                      cmdBld_ItrIeTfsDtim ()
278  ****************************************************************************
279  * DESCRIPTION: Get the Tsf and Dtim counter from Fw
280  *
281  * INPUTS:
282  *
283  * OUTPUT:  None
284  *
285  * RETURNS: TI_OK or TI_NOK
286  ****************************************************************************/
cmdBld_ItrIeTfsDtim(TI_HANDLE hCmdBld,TInterrogateCmdCbParams mediumUsageCBParams)287 TI_STATUS cmdBld_ItrIeTfsDtim (TI_HANDLE hCmdBld,
288                                TInterrogateCmdCbParams  mediumUsageCBParams)
289 {
290     TCmdBld *pCmdBld = (TCmdBld *)hCmdBld;
291     ACX_fwTSFInformation_t    fwTsfDtimMib;
292     ACX_fwTSFInformation_t    *pCfg = &fwTsfDtimMib;
293 
294     /* Set information element header*/
295     pCfg->EleHdr.id  = ACX_TSF_INFO;
296     pCfg->EleHdr.len = sizeof(ACX_fwTSFInformation_t) - sizeof(EleHdrStruct);
297 
298     return cmdQueue_SendCommand (pCmdBld->hCmdQueue,
299                                  CMD_INTERROGATE,
300                                  pCfg,
301                                  sizeof(*pCfg),
302                                  mediumUsageCBParams.fCb,
303                                  mediumUsageCBParams.hCb,
304                                  mediumUsageCBParams.pCb);
305 }
306 
307 
308 /****************************************************************************
309  *                      cmdBld_ItrIeNoiseHistogramResults()
310  ****************************************************************************
311  * DESCRIPTION: Get the Noise Histogram Measurement Results.
312  *
313  * INPUTS:
314  *
315  * OUTPUT:  None
316  *
317  * RETURNS: TI_OK or TI_NOK
318  ****************************************************************************/
cmdBld_ItrIeNoiseHistogramResults(TI_HANDLE hCmdBld,TInterrogateCmdCbParams noiseHistCBParams)319 TI_STATUS cmdBld_ItrIeNoiseHistogramResults (TI_HANDLE hCmdBld,
320                                              TInterrogateCmdCbParams noiseHistCBParams)
321 {
322     TCmdBld *pCmdBld = (TCmdBld *)hCmdBld;
323     NoiseHistResult_t   results;
324     NoiseHistResult_t   *pCfg = &results;
325 
326     /* Set information element header*/
327     pCfg->EleHdr.id  = ACX_NOISE_HIST;
328     pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct);
329 
330     return cmdQueue_SendCommand (pCmdBld->hCmdQueue,
331                                  CMD_INTERROGATE,
332                                  pCfg,
333                                  sizeof(*pCfg),
334                                  noiseHistCBParams.fCb,
335                                  noiseHistCBParams.hCb,
336                                  noiseHistCBParams.pCb);
337 }
338 
339 /****************************************************************************
340  *                      cmdBld_ItrIeDataFilterStatistics()
341  ****************************************************************************
342  * DESCRIPTION: Get the ACX GWSI counters
343  *
344  * INPUTS:
345  *
346  * OUTPUT:  None
347  *
348  * RETURNS: TI_OK or TI_NOK
349  ****************************************************************************/
cmdBld_ItrIeDataFilterStatistics(TI_HANDLE hCmdBld,void * fCb,TI_HANDLE hCb,void * pCb)350 TI_STATUS cmdBld_ItrIeDataFilterStatistics (TI_HANDLE  hCmdBld,
351                                             void      *fCb,
352                                             TI_HANDLE  hCb,
353                                             void      *pCb)
354 {
355 	TCmdBld       *pCmdBld = (TCmdBld *)hCmdBld;
356     ACXDataFilteringStatistics_t acx;
357     ACXDataFilteringStatistics_t * pCfg = &acx;
358 
359     /* Set information element header */
360     pCfg->EleHdr.id  = ACX_GET_DATA_FILTER_STATISTICS;
361     pCfg->EleHdr.len = sizeof(*pCfg) - sizeof(EleHdrStruct);
362 
363     TRACE_INFO_HEX(pCmdBld->hReport, (TI_UINT8 *) pCfg, sizeof(ACXDataFilteringStatistics_t));
364 
365     /* Send the interrogation command */
366     return cmdQueue_SendCommand (pCmdBld->hCmdQueue, CMD_INTERROGATE, pCfg, sizeof(*pCfg), fCb, hCb, pCb);
367 }
368 
369 
370