| /* |
| * TWDriverMsr.h |
| * |
| * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in |
| * the documentation and/or other materials provided with the |
| * distribution. |
| * * Neither the name Texas Instruments nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| #ifndef TWDDRIVERMSR_H |
| #define TWDDRIVERMSR_H |
| |
| /** \file TWDriverMsr.h |
| * \brief TWDriver Measurement APIs |
| * |
| * \see |
| */ |
| |
| #include "TWDriverScan.h" |
| #include "tidef.h" |
| #include "public_radio.h" |
| |
| #define NOISE_HISTOGRAM_LENGTH 8 |
| #define MAX_NUM_OF_MSR_TYPES_IN_PARALLEL 3 |
| |
| /* The size of the time frame in which we must start the */ |
| /* measurement request or give up */ |
| #define MSR_START_MAX_DELAY 50 |
| |
| /* In non unicast measurement requests a random delay */ |
| /* between 4 and 40 milliseconds */ |
| #define MSR_ACTIVATION_DELAY_RANDOM 36 |
| #define MSR_ACTIVATION_DELAY_OFFSET 4 |
| |
| |
| /** \enum EMeasurementType |
| * \brief different measurement types |
| * |
| * \par Description |
| * |
| * \sa |
| */ |
| typedef enum |
| { |
| /* 0 */ MSR_TYPE_BASIC_MEASUREMENT = 0, /**< */ |
| /* 1 */ MSR_TYPE_CCA_LOAD_MEASUREMENT, /**< */ |
| /* 2 */ MSR_TYPE_NOISE_HISTOGRAM_MEASUREMENT, /**< */ |
| /* 3 */ MSR_TYPE_BEACON_MEASUREMENT, /**< */ |
| /* 4 */ MSR_TYPE_FRAME_MEASUREMENT, /**< */ |
| /* 5 */ MSR_TYPE_MAX_NUM_OF_MEASURE_TYPES /**< */ |
| |
| } EMeasurementType; |
| |
| /** \enum EMeasurementScanMode |
| * \brief Measurement Scan Modes |
| * |
| * \par Description |
| * enumerates the different scan modes available for beacon measurement |
| * |
| * \sa |
| */ |
| typedef enum |
| { |
| /* 0 */ MSR_SCAN_MODE_PASSIVE = 0, /**< Passive Scan Mode */ |
| /* 1 */ MSR_SCAN_MODE_ACTIVE, /**< Active Scan Mode */ |
| /* 2 */ MSR_SCAN_MODE_BEACON_TABLE, /**< Beacon Table Scan Mode */ |
| /* 3 */ MSR_SCAN_MODE_MAX_NUM_OF_SCAN_MODES /**< Max number of Scan Modes */ |
| |
| } EMeasurementScanMode; |
| |
| /** \enum EMeasurementFrameType |
| * \brief Measurement Frame Types |
| * |
| * \par Description |
| * |
| * \sa |
| */ |
| typedef enum |
| { |
| /* 0 */ MSR_FRAME_TYPE_NO_ACTIVE = 0, /**< */ |
| /* 1 */ MSR_FRAME_TYPE_BROADCAST, /**< */ |
| /* 2 */ MSR_FRAME_TYPE_MULTICAST, /**< */ |
| /* 3 */ MSR_FRAME_TYPE_UNICAST /**< */ |
| |
| } EMeasurementFrameType; |
| |
| /** \enum EMeasurementMode |
| * \brief Measurement Modes |
| * |
| * \par Description |
| * |
| * \sa |
| */ |
| typedef enum |
| { |
| /* 0 */ MSR_MODE_NONE = 0, /**< */ |
| /* 1 */ MSR_MODE_XCC, /**< */ |
| /* 2 */ MSR_MODE_SPECTRUM_MANAGEMENT /**< */ |
| |
| } EMeasurementMode; |
| |
| /** \enum EMeasurementRejectReason |
| * \brief Measurement Reject Reason |
| * |
| * \par Description |
| * |
| * \sa |
| */ |
| typedef enum |
| { |
| /* 1 */ MSR_REJECT_OTHER_REASON = 1, /**< */ |
| /* 2 */ MSR_REJECT_INVALID_MEASUREMENT_TYPE, /**< */ |
| /* 3 */ MSR_REJECT_DTIM_OVERLAP, /**< */ |
| /* 4 */ MSR_REJECT_DURATION_EXCEED_MAX_DURATION, /**< */ |
| /* 5 */ MSR_REJECT_TRAFFIC_INTENSITY_TOO_HIGH, /**< */ |
| /* 6 */ MSR_REJECT_SCR_UNAVAILABLE, /**< */ |
| /* 7 */ MSR_REJECT_MAX_DELAY_PASSED, /**< */ |
| /* 8 */ MSR_REJECT_INVALID_CHANNEL, /**< */ |
| /* 9 */ MSR_REJECT_NOISE_HIST_FAIL, /**< */ |
| /* 10 */ MSR_REJECT_CHANNEL_LOAD_FAIL, /**< */ |
| /* 11 */ MSR_REJECT_EMPTY_REPORT /**< */ |
| |
| } EMeasurementRejectReason; |
| |
| /* |
| *********************************************************************** |
| * Unions. |
| *********************************************************************** |
| */ |
| /** \union TMeasurementReplyValue |
| * \brief Measurement possible Reply Values |
| * |
| * \par Description |
| * |
| * \sa |
| */ |
| typedef union |
| { |
| TI_UINT8 CCABusyFraction; /**< */ |
| TI_UINT8 RPIDensity[ NOISE_HISTOGRAM_LENGTH ]; /**< */ |
| |
| } TMeasurementReplyValue; |
| |
| /*********************************************************************** |
| * Structure definitions. |
| *********************************************************************** |
| */ |
| /** \struct TMeasurementTypeRequest |
| * \brief Measurement Type Request |
| * |
| * \par Description |
| * This structure defines single channel parameters for normal scan operation (inc. triggered) |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| EMeasurementType msrType; /**< */ |
| EMeasurementScanMode scanMode; /**< */ |
| TI_UINT32 duration; /**< */ |
| TI_UINT8 reserved; /**< */ |
| |
| } TMeasurementTypeRequest; |
| |
| /** \struct TMeasurementRequest |
| * \brief Measurement Request |
| * |
| * \par Description |
| * This structure defines measurement parameters of several measurement request types |
| * for one channel |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| ERadioBand band; /**< */ |
| TI_UINT8 channel; /**< */ |
| TI_UINT64 startTime; /**< */ |
| TI_UINT8 txPowerDbm; /**< */ |
| EScanResultTag eTag; /**< */ |
| TI_UINT8 numberOfTypes; /**< */ |
| TMeasurementTypeRequest msrTypes[ MAX_NUM_OF_MSR_TYPES_IN_PARALLEL ]; /**< */ |
| |
| } TMeasurementRequest; |
| |
| /** \struct TMeasurementTypeReply |
| * \brief Measurement Type Reply |
| * |
| * \par Description |
| * This structure defines the reply parameters for measurement of specific type performed |
| * (the type is indicated in the msrType field) |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| EMeasurementType msrType; /**< The type of performed measurement the reply reffer to */ |
| TI_UINT8 status; /**< The status of measurement performed */ |
| TMeasurementReplyValue replyValue; /**< The Reply Value of performed measurement */ |
| TI_UINT8 reserved; /**< */ |
| |
| } TMeasurementTypeReply; |
| |
| /** \struct TMeasurementReply |
| * \brief Measurement Reply |
| * |
| * \par Description |
| * This structure defines the reply parameters for some measurements of some types performed |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TI_UINT8 numberOfTypes; /**< Number of measurements types (equal to number of measurement replys) */ |
| TMeasurementTypeReply msrTypes[ MAX_NUM_OF_MSR_TYPES_IN_PARALLEL ]; /**< Measurements Replys buffer. One Reply per type */ |
| |
| } TMeasurementReply; |
| |
| /** \struct TMeasurementFrameHdr |
| * \brief Measurement Frame Header |
| * |
| * \par Description |
| * This structure defines a Header of a measurement |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TI_UINT16 dialogToken; /**< Indicates if the received Measurement is the same as the one that is being processed */ |
| TI_UINT8 activatioDelay; /**< */ |
| TI_UINT8 measurementOffset; /**< */ |
| |
| } TMeasurementFrameHdr; |
| |
| /** \struct TMeasurementFrameRequest |
| * \brief Measurement Frame Request |
| * |
| * \par Description |
| * |
| * \sa |
| */ |
| typedef struct |
| { |
| TMeasurementFrameHdr *hdr; /**< */ |
| EMeasurementFrameType frameType; /**< */ |
| TI_UINT8 *requests; /**< */ |
| TI_INT32 requestsLen; /**< */ |
| |
| } TMeasurementFrameRequest; |
| |
| |
| #endif /* #define TWDDRIVERMSR_H */ |