wifi test

Dependencies:   X_NUCLEO_IKS01A2 mbed-http

Committer:
JMF
Date:
Wed Sep 05 14:28:24 2018 +0000
Revision:
0:24d3eb812fd4
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JMF 0:24d3eb812fd4 1 /**
JMF 0:24d3eb812fd4 2 ******************************************************************************
JMF 0:24d3eb812fd4 3 * @file SPIRIT_Qi.h
JMF 0:24d3eb812fd4 4 * @author VMA division - AMS
JMF 0:24d3eb812fd4 5 * @version 3.2.2
JMF 0:24d3eb812fd4 6 * @date 08-July-2015
JMF 0:24d3eb812fd4 7 * @brief Configuration and management of SPIRIT QI.
JMF 0:24d3eb812fd4 8 * @details
JMF 0:24d3eb812fd4 9 *
JMF 0:24d3eb812fd4 10 * This module can be used to configure and read some quality indicators
JMF 0:24d3eb812fd4 11 * used by Spirit.
JMF 0:24d3eb812fd4 12 * API to set thresholds and to read values in raw mode or in dBm are
JMF 0:24d3eb812fd4 13 * provided.
JMF 0:24d3eb812fd4 14 *
JMF 0:24d3eb812fd4 15 * <b>Example:</b>
JMF 0:24d3eb812fd4 16 * @code
JMF 0:24d3eb812fd4 17 *
JMF 0:24d3eb812fd4 18 * float rssiValuedBm;
JMF 0:24d3eb812fd4 19 * uint8_t pqiValue, sqiValue;
JMF 0:24d3eb812fd4 20 *
JMF 0:24d3eb812fd4 21 * SpiritQiPqiCheck(S_ENABLE);
JMF 0:24d3eb812fd4 22 * SpiritQiSqiCheck(S_ENABLE);
JMF 0:24d3eb812fd4 23 *
JMF 0:24d3eb812fd4 24 * ...
JMF 0:24d3eb812fd4 25 *
JMF 0:24d3eb812fd4 26 * rssiValueDbm = SpiritQiGetRssidBm();
JMF 0:24d3eb812fd4 27 * pqiValue = SpiritQiGetPqi();
JMF 0:24d3eb812fd4 28 * sqiValue = SpiritQiGetSqi();
JMF 0:24d3eb812fd4 29 *
JMF 0:24d3eb812fd4 30 * ...
JMF 0:24d3eb812fd4 31 *
JMF 0:24d3eb812fd4 32 * @endcode
JMF 0:24d3eb812fd4 33 *
JMF 0:24d3eb812fd4 34 * @attention
JMF 0:24d3eb812fd4 35 *
JMF 0:24d3eb812fd4 36 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
JMF 0:24d3eb812fd4 37 *
JMF 0:24d3eb812fd4 38 * Redistribution and use in source and binary forms, with or without modification,
JMF 0:24d3eb812fd4 39 * are permitted provided that the following conditions are met:
JMF 0:24d3eb812fd4 40 * 1. Redistributions of source code must retain the above copyright notice,
JMF 0:24d3eb812fd4 41 * this list of conditions and the following disclaimer.
JMF 0:24d3eb812fd4 42 * 2. Redistributions in binary form must reproduce the above copyright notice,
JMF 0:24d3eb812fd4 43 * this list of conditions and the following disclaimer in the documentation
JMF 0:24d3eb812fd4 44 * and/or other materials provided with the distribution.
JMF 0:24d3eb812fd4 45 * 3. Neither the name of STMicroelectronics nor the names of its contributors
JMF 0:24d3eb812fd4 46 * may be used to endorse or promote products derived from this software
JMF 0:24d3eb812fd4 47 * without specific prior written permission.
JMF 0:24d3eb812fd4 48 *
JMF 0:24d3eb812fd4 49 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
JMF 0:24d3eb812fd4 50 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
JMF 0:24d3eb812fd4 51 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
JMF 0:24d3eb812fd4 52 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
JMF 0:24d3eb812fd4 53 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
JMF 0:24d3eb812fd4 54 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
JMF 0:24d3eb812fd4 55 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
JMF 0:24d3eb812fd4 56 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
JMF 0:24d3eb812fd4 57 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
JMF 0:24d3eb812fd4 58 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
JMF 0:24d3eb812fd4 59 *
JMF 0:24d3eb812fd4 60 ******************************************************************************
JMF 0:24d3eb812fd4 61 */
JMF 0:24d3eb812fd4 62
JMF 0:24d3eb812fd4 63 /* Define to prevent recursive inclusion -------------------------------------*/
JMF 0:24d3eb812fd4 64 #ifndef __SPIRIT_QI_H
JMF 0:24d3eb812fd4 65 #define __SPIRIT_QI_H
JMF 0:24d3eb812fd4 66
JMF 0:24d3eb812fd4 67
JMF 0:24d3eb812fd4 68 /* Includes ------------------------------------------------------------------*/
JMF 0:24d3eb812fd4 69
JMF 0:24d3eb812fd4 70 #include "SPIRIT_Regs.h"
JMF 0:24d3eb812fd4 71 #include "SPIRIT_Types.h"
JMF 0:24d3eb812fd4 72
JMF 0:24d3eb812fd4 73
JMF 0:24d3eb812fd4 74 #ifdef __cplusplus
JMF 0:24d3eb812fd4 75 extern "C" {
JMF 0:24d3eb812fd4 76 #endif
JMF 0:24d3eb812fd4 77
JMF 0:24d3eb812fd4 78
JMF 0:24d3eb812fd4 79 /**
JMF 0:24d3eb812fd4 80 * @addtogroup SPIRIT_Libraries
JMF 0:24d3eb812fd4 81 * @{
JMF 0:24d3eb812fd4 82 */
JMF 0:24d3eb812fd4 83
JMF 0:24d3eb812fd4 84
JMF 0:24d3eb812fd4 85 /**
JMF 0:24d3eb812fd4 86 * @defgroup SPIRIT_Qi QI
JMF 0:24d3eb812fd4 87 * @brief Configuration and management of SPIRIT QI.
JMF 0:24d3eb812fd4 88 * @details See the file <i>@ref SPIRIT_Qi.h</i> for more details.
JMF 0:24d3eb812fd4 89 * @{
JMF 0:24d3eb812fd4 90 */
JMF 0:24d3eb812fd4 91
JMF 0:24d3eb812fd4 92 /**
JMF 0:24d3eb812fd4 93 * @defgroup Qi_Exported_Types QI Exported Types
JMF 0:24d3eb812fd4 94 * @{
JMF 0:24d3eb812fd4 95 */
JMF 0:24d3eb812fd4 96
JMF 0:24d3eb812fd4 97
JMF 0:24d3eb812fd4 98 /**
JMF 0:24d3eb812fd4 99 * @brief PQI threshold value enumeration.
JMF 0:24d3eb812fd4 100 */
JMF 0:24d3eb812fd4 101 typedef enum
JMF 0:24d3eb812fd4 102 {
JMF 0:24d3eb812fd4 103 PQI_TH_0=0x00,
JMF 0:24d3eb812fd4 104 PQI_TH_1=0x04,
JMF 0:24d3eb812fd4 105 PQI_TH_2=0x08,
JMF 0:24d3eb812fd4 106 PQI_TH_3=0x0C,
JMF 0:24d3eb812fd4 107 PQI_TH_4=0x10,
JMF 0:24d3eb812fd4 108 PQI_TH_5=0x14,
JMF 0:24d3eb812fd4 109 PQI_TH_6=0x18,
JMF 0:24d3eb812fd4 110 PQI_TH_7=0x1C,
JMF 0:24d3eb812fd4 111 PQI_TH_8=0x20,
JMF 0:24d3eb812fd4 112 PQI_TH_9=0x24,
JMF 0:24d3eb812fd4 113 PQI_TH_10=0x28,
JMF 0:24d3eb812fd4 114 PQI_TH_11=0x2C,
JMF 0:24d3eb812fd4 115 PQI_TH_12=0x30,
JMF 0:24d3eb812fd4 116 PQI_TH_13=0x34,
JMF 0:24d3eb812fd4 117 PQI_TH_14=0x38,
JMF 0:24d3eb812fd4 118 PQI_TH_15=0x3C
JMF 0:24d3eb812fd4 119
JMF 0:24d3eb812fd4 120 } PqiThreshold;
JMF 0:24d3eb812fd4 121
JMF 0:24d3eb812fd4 122 #define IS_PQI_THR(VALUE) (VALUE==PQI_TH_0 ||\
JMF 0:24d3eb812fd4 123 VALUE==PQI_TH_1 ||\
JMF 0:24d3eb812fd4 124 VALUE==PQI_TH_2 ||\
JMF 0:24d3eb812fd4 125 VALUE==PQI_TH_3 ||\
JMF 0:24d3eb812fd4 126 VALUE==PQI_TH_4 ||\
JMF 0:24d3eb812fd4 127 VALUE==PQI_TH_5 ||\
JMF 0:24d3eb812fd4 128 VALUE==PQI_TH_6 ||\
JMF 0:24d3eb812fd4 129 VALUE==PQI_TH_7 ||\
JMF 0:24d3eb812fd4 130 VALUE==PQI_TH_8 ||\
JMF 0:24d3eb812fd4 131 VALUE==PQI_TH_9 ||\
JMF 0:24d3eb812fd4 132 VALUE==PQI_TH_10 ||\
JMF 0:24d3eb812fd4 133 VALUE==PQI_TH_11 ||\
JMF 0:24d3eb812fd4 134 VALUE==PQI_TH_12 ||\
JMF 0:24d3eb812fd4 135 VALUE==PQI_TH_13 ||\
JMF 0:24d3eb812fd4 136 VALUE==PQI_TH_14 ||\
JMF 0:24d3eb812fd4 137 VALUE==PQI_TH_15)
JMF 0:24d3eb812fd4 138
JMF 0:24d3eb812fd4 139 /**
JMF 0:24d3eb812fd4 140 * @brief SQI threshold value enumeration.
JMF 0:24d3eb812fd4 141 */
JMF 0:24d3eb812fd4 142 typedef enum
JMF 0:24d3eb812fd4 143 {
JMF 0:24d3eb812fd4 144 SQI_TH_0=0x00,
JMF 0:24d3eb812fd4 145 SQI_TH_1=0x40,
JMF 0:24d3eb812fd4 146 SQI_TH_2=0x80,
JMF 0:24d3eb812fd4 147 SQI_TH_3=0xC0
JMF 0:24d3eb812fd4 148
JMF 0:24d3eb812fd4 149 } SqiThreshold;
JMF 0:24d3eb812fd4 150
JMF 0:24d3eb812fd4 151 #define IS_SQI_THR(VALUE) (VALUE==SQI_TH_0 ||\
JMF 0:24d3eb812fd4 152 VALUE==SQI_TH_1 ||\
JMF 0:24d3eb812fd4 153 VALUE==SQI_TH_2 ||\
JMF 0:24d3eb812fd4 154 VALUE==SQI_TH_3)
JMF 0:24d3eb812fd4 155
JMF 0:24d3eb812fd4 156
JMF 0:24d3eb812fd4 157 /**
JMF 0:24d3eb812fd4 158 * @brief RSSI filter gain value enumeration.
JMF 0:24d3eb812fd4 159 */
JMF 0:24d3eb812fd4 160 typedef enum
JMF 0:24d3eb812fd4 161 {
JMF 0:24d3eb812fd4 162 RSSI_FG_0=0x00,
JMF 0:24d3eb812fd4 163 RSSI_FG_1=0x10,
JMF 0:24d3eb812fd4 164 RSSI_FG_2=0x20,
JMF 0:24d3eb812fd4 165 RSSI_FG_3=0x30,
JMF 0:24d3eb812fd4 166 RSSI_FG_4=0x40,
JMF 0:24d3eb812fd4 167 RSSI_FG_5=0x50,
JMF 0:24d3eb812fd4 168 RSSI_FG_6=0x60,
JMF 0:24d3eb812fd4 169 RSSI_FG_7=0x70,
JMF 0:24d3eb812fd4 170 RSSI_FG_8=0x80,
JMF 0:24d3eb812fd4 171 RSSI_FG_9=0x90,
JMF 0:24d3eb812fd4 172 RSSI_FG_10=0xA0,
JMF 0:24d3eb812fd4 173 RSSI_FG_11=0xB0,
JMF 0:24d3eb812fd4 174 RSSI_FG_12=0xC0,
JMF 0:24d3eb812fd4 175 RSSI_FG_13=0xD0,
JMF 0:24d3eb812fd4 176 RSSI_FG_14=0xE0, /*<! recommended value */
JMF 0:24d3eb812fd4 177 RSSI_FG_15=0xF0
JMF 0:24d3eb812fd4 178
JMF 0:24d3eb812fd4 179 } RssiFilterGain;
JMF 0:24d3eb812fd4 180
JMF 0:24d3eb812fd4 181 #define IS_RSSI_FILTER_GAIN(VALUE) (VALUE==RSSI_FG_0 ||\
JMF 0:24d3eb812fd4 182 VALUE==RSSI_FG_1 ||\
JMF 0:24d3eb812fd4 183 VALUE==RSSI_FG_2 ||\
JMF 0:24d3eb812fd4 184 VALUE==RSSI_FG_3 ||\
JMF 0:24d3eb812fd4 185 VALUE==RSSI_FG_4 ||\
JMF 0:24d3eb812fd4 186 VALUE==RSSI_FG_5 ||\
JMF 0:24d3eb812fd4 187 VALUE==RSSI_FG_6 ||\
JMF 0:24d3eb812fd4 188 VALUE==RSSI_FG_7 ||\
JMF 0:24d3eb812fd4 189 VALUE==RSSI_FG_8 ||\
JMF 0:24d3eb812fd4 190 VALUE==RSSI_FG_9 ||\
JMF 0:24d3eb812fd4 191 VALUE==RSSI_FG_10 ||\
JMF 0:24d3eb812fd4 192 VALUE==RSSI_FG_11 ||\
JMF 0:24d3eb812fd4 193 VALUE==RSSI_FG_12 ||\
JMF 0:24d3eb812fd4 194 VALUE==RSSI_FG_13 ||\
JMF 0:24d3eb812fd4 195 VALUE==RSSI_FG_14 ||\
JMF 0:24d3eb812fd4 196 VALUE==RSSI_FG_15)
JMF 0:24d3eb812fd4 197
JMF 0:24d3eb812fd4 198 /**
JMF 0:24d3eb812fd4 199 * @brief CS mode enumeration.
JMF 0:24d3eb812fd4 200 */
JMF 0:24d3eb812fd4 201 typedef enum
JMF 0:24d3eb812fd4 202 {
JMF 0:24d3eb812fd4 203 CS_MODE_STATIC_3DB=0x00,
JMF 0:24d3eb812fd4 204 CS_MODE_DYNAMIC_6DB=0x04,
JMF 0:24d3eb812fd4 205 CS_MODE_DYNAMIC_12DB=0x08,
JMF 0:24d3eb812fd4 206 CS_MODE_DYNAMIC_18DB=0x0C
JMF 0:24d3eb812fd4 207
JMF 0:24d3eb812fd4 208 } CSMode;
JMF 0:24d3eb812fd4 209
JMF 0:24d3eb812fd4 210 #define IS_CS_MODE(MODE) (MODE==CS_MODE_STATIC_3DB ||\
JMF 0:24d3eb812fd4 211 MODE==CS_MODE_DYNAMIC_6DB ||\
JMF 0:24d3eb812fd4 212 MODE==CS_MODE_DYNAMIC_12DB ||\
JMF 0:24d3eb812fd4 213 MODE==CS_MODE_DYNAMIC_18DB)
JMF 0:24d3eb812fd4 214
JMF 0:24d3eb812fd4 215 /**
JMF 0:24d3eb812fd4 216 *@}
JMF 0:24d3eb812fd4 217 */
JMF 0:24d3eb812fd4 218
JMF 0:24d3eb812fd4 219
JMF 0:24d3eb812fd4 220 /**
JMF 0:24d3eb812fd4 221 * @defgroup Qi_Exported_Constants QI Exported Constants
JMF 0:24d3eb812fd4 222 * @{
JMF 0:24d3eb812fd4 223 */
JMF 0:24d3eb812fd4 224
JMF 0:24d3eb812fd4 225 /* range for the RSSI Threshold in dBm */
JMF 0:24d3eb812fd4 226 #define IS_RSSI_THR_DBM(VALUE) (VALUE>=-130 && VALUE<=-2)
JMF 0:24d3eb812fd4 227
JMF 0:24d3eb812fd4 228 /**
JMF 0:24d3eb812fd4 229 *@}
JMF 0:24d3eb812fd4 230 */
JMF 0:24d3eb812fd4 231
JMF 0:24d3eb812fd4 232
JMF 0:24d3eb812fd4 233 /**
JMF 0:24d3eb812fd4 234 * @defgroup Qi_Exported_Macros QI Exported Macros
JMF 0:24d3eb812fd4 235 * @{
JMF 0:24d3eb812fd4 236 */
JMF 0:24d3eb812fd4 237
JMF 0:24d3eb812fd4 238 /**
JMF 0:24d3eb812fd4 239 * @brief Macro to obtain the RSSI value in dBm
JMF 0:24d3eb812fd4 240 * @param None.
JMF 0:24d3eb812fd4 241 * @retval RSSI in dBm.
JMF 0:24d3eb812fd4 242 * This parameter is a float.
JMF 0:24d3eb812fd4 243 */
JMF 0:24d3eb812fd4 244 #define SpiritQiGetRssidBm() (-120.0+((float)(SpiritQiGetRssi()-20))/2)
JMF 0:24d3eb812fd4 245
JMF 0:24d3eb812fd4 246 /**
JMF 0:24d3eb812fd4 247 *@}
JMF 0:24d3eb812fd4 248 */
JMF 0:24d3eb812fd4 249
JMF 0:24d3eb812fd4 250
JMF 0:24d3eb812fd4 251 /**
JMF 0:24d3eb812fd4 252 * @defgroup Qi_Exported_Functions QI Exported Functions
JMF 0:24d3eb812fd4 253 * @{
JMF 0:24d3eb812fd4 254 */
JMF 0:24d3eb812fd4 255
JMF 0:24d3eb812fd4 256 void SpiritQiPqiCheck(SpiritFunctionalState xNewState);
JMF 0:24d3eb812fd4 257 void SpiritQiSqiCheck(SpiritFunctionalState xNewState);
JMF 0:24d3eb812fd4 258 void SpiritQiSetPqiThreshold(PqiThreshold xPqiThr);
JMF 0:24d3eb812fd4 259 PqiThreshold SpiritQiGetPqiThreshold(void);
JMF 0:24d3eb812fd4 260 void SpiritQiSetSqiThreshold(SqiThreshold xSqiThr);
JMF 0:24d3eb812fd4 261 SqiThreshold SpiritQiGetSqiThreshold(void);
JMF 0:24d3eb812fd4 262 void SpiritQiSetRssiThreshold(uint8_t cRssiThr);
JMF 0:24d3eb812fd4 263 uint8_t SpiritQiGetRssiThreshold(void);
JMF 0:24d3eb812fd4 264 uint8_t SpiritQiComputeRssiThreshold(int cDbmValue);
JMF 0:24d3eb812fd4 265 void SpiritQiSetRssiThresholddBm(int nDbmValue);
JMF 0:24d3eb812fd4 266 uint8_t SpiritQiGetPqi(void);
JMF 0:24d3eb812fd4 267 uint8_t SpiritQiGetSqi(void);
JMF 0:24d3eb812fd4 268 uint8_t SpiritQiGetLqi(void);
JMF 0:24d3eb812fd4 269 SpiritFlagStatus SpiritQiGetCs(void);
JMF 0:24d3eb812fd4 270 uint8_t SpiritQiGetRssi(void);
JMF 0:24d3eb812fd4 271 void SpiritQiSetRssiFilterGain(RssiFilterGain xRssiFg);
JMF 0:24d3eb812fd4 272 RssiFilterGain SpiritQiGetRssiFilterGain(void);
JMF 0:24d3eb812fd4 273 void SpiritQiSetCsMode(CSMode xCsMode);
JMF 0:24d3eb812fd4 274 CSMode SpiritQiGetCsMode(void);
JMF 0:24d3eb812fd4 275 void SpiritQiCsTimeoutMask(SpiritFunctionalState xNewState);
JMF 0:24d3eb812fd4 276 void SpiritQiPqiTimeoutMask(SpiritFunctionalState xNewState);
JMF 0:24d3eb812fd4 277 void SpiritQiSqiTimeoutMask(SpiritFunctionalState xNewState);
JMF 0:24d3eb812fd4 278
JMF 0:24d3eb812fd4 279
JMF 0:24d3eb812fd4 280 /**
JMF 0:24d3eb812fd4 281 *@}
JMF 0:24d3eb812fd4 282 */
JMF 0:24d3eb812fd4 283
JMF 0:24d3eb812fd4 284 /**
JMF 0:24d3eb812fd4 285 *@}
JMF 0:24d3eb812fd4 286 */
JMF 0:24d3eb812fd4 287
JMF 0:24d3eb812fd4 288
JMF 0:24d3eb812fd4 289 /**
JMF 0:24d3eb812fd4 290 *@}
JMF 0:24d3eb812fd4 291 */
JMF 0:24d3eb812fd4 292
JMF 0:24d3eb812fd4 293
JMF 0:24d3eb812fd4 294 #ifdef __cplusplus
JMF 0:24d3eb812fd4 295 }
JMF 0:24d3eb812fd4 296 #endif
JMF 0:24d3eb812fd4 297
JMF 0:24d3eb812fd4 298 #endif
JMF 0:24d3eb812fd4 299
JMF 0:24d3eb812fd4 300 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/