Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of stm-spirit1-rf-driver by
SPIRIT_Qi.h
00001 /** 00002 ****************************************************************************** 00003 * @file SPIRIT_Qi.h 00004 * @author VMA division - AMS 00005 * @version 3.2.2 00006 * @date 08-July-2015 00007 * @brief Configuration and management of SPIRIT QI. 00008 * @details 00009 * 00010 * This module can be used to configure and read some quality indicators 00011 * used by Spirit. 00012 * API to set thresholds and to read values in raw mode or in dBm are 00013 * provided. 00014 * 00015 * <b>Example:</b> 00016 * @code 00017 * 00018 * float rssiValuedBm; 00019 * uint8_t pqiValue, sqiValue; 00020 * 00021 * SpiritQiPqiCheck(S_ENABLE); 00022 * SpiritQiSqiCheck(S_ENABLE); 00023 * 00024 * ... 00025 * 00026 * rssiValueDbm = SpiritQiGetRssidBm(); 00027 * pqiValue = SpiritQiGetPqi(); 00028 * sqiValue = SpiritQiGetSqi(); 00029 * 00030 * ... 00031 * 00032 * @endcode 00033 * 00034 * @attention 00035 * 00036 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 00037 * 00038 * Redistribution and use in source and binary forms, with or without modification, 00039 * are permitted provided that the following conditions are met: 00040 * 1. Redistributions of source code must retain the above copyright notice, 00041 * this list of conditions and the following disclaimer. 00042 * 2. Redistributions in binary form must reproduce the above copyright notice, 00043 * this list of conditions and the following disclaimer in the documentation 00044 * and/or other materials provided with the distribution. 00045 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00046 * may be used to endorse or promote products derived from this software 00047 * without specific prior written permission. 00048 * 00049 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00050 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00051 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00052 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00053 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00054 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00055 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00056 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00057 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00058 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00059 * 00060 ****************************************************************************** 00061 */ 00062 00063 /* Define to prevent recursive inclusion -------------------------------------*/ 00064 #ifndef __SPIRIT_QI_H 00065 #define __SPIRIT_QI_H 00066 00067 00068 /* Includes ------------------------------------------------------------------*/ 00069 00070 #include "SPIRIT_Regs.h" 00071 #include "SPIRIT_Types.h" 00072 00073 00074 #ifdef __cplusplus 00075 extern "C" { 00076 #endif 00077 00078 00079 /** 00080 * @addtogroup SPIRIT_Libraries 00081 * @{ 00082 */ 00083 00084 00085 /** 00086 * @defgroup SPIRIT_Qi QI 00087 * @brief Configuration and management of SPIRIT QI. 00088 * @details See the file <i>@ref SPIRIT_Qi.h</i> for more details. 00089 * @{ 00090 */ 00091 00092 /** 00093 * @defgroup Qi_Exported_Types QI Exported Types 00094 * @{ 00095 */ 00096 00097 00098 /** 00099 * @brief PQI threshold value enumeration. 00100 */ 00101 typedef enum 00102 { 00103 PQI_TH_0=0x00, 00104 PQI_TH_1=0x04, 00105 PQI_TH_2=0x08, 00106 PQI_TH_3=0x0C, 00107 PQI_TH_4=0x10, 00108 PQI_TH_5=0x14, 00109 PQI_TH_6=0x18, 00110 PQI_TH_7=0x1C, 00111 PQI_TH_8=0x20, 00112 PQI_TH_9=0x24, 00113 PQI_TH_10=0x28, 00114 PQI_TH_11=0x2C, 00115 PQI_TH_12=0x30, 00116 PQI_TH_13=0x34, 00117 PQI_TH_14=0x38, 00118 PQI_TH_15=0x3C 00119 00120 } PqiThreshold; 00121 00122 #define IS_PQI_THR(VALUE) (VALUE==PQI_TH_0 ||\ 00123 VALUE==PQI_TH_1 ||\ 00124 VALUE==PQI_TH_2 ||\ 00125 VALUE==PQI_TH_3 ||\ 00126 VALUE==PQI_TH_4 ||\ 00127 VALUE==PQI_TH_5 ||\ 00128 VALUE==PQI_TH_6 ||\ 00129 VALUE==PQI_TH_7 ||\ 00130 VALUE==PQI_TH_8 ||\ 00131 VALUE==PQI_TH_9 ||\ 00132 VALUE==PQI_TH_10 ||\ 00133 VALUE==PQI_TH_11 ||\ 00134 VALUE==PQI_TH_12 ||\ 00135 VALUE==PQI_TH_13 ||\ 00136 VALUE==PQI_TH_14 ||\ 00137 VALUE==PQI_TH_15) 00138 00139 /** 00140 * @brief SQI threshold value enumeration. 00141 */ 00142 typedef enum 00143 { 00144 SQI_TH_0=0x00, 00145 SQI_TH_1=0x40, 00146 SQI_TH_2=0x80, 00147 SQI_TH_3=0xC0 00148 00149 } SqiThreshold; 00150 00151 #define IS_SQI_THR(VALUE) (VALUE==SQI_TH_0 ||\ 00152 VALUE==SQI_TH_1 ||\ 00153 VALUE==SQI_TH_2 ||\ 00154 VALUE==SQI_TH_3) 00155 00156 00157 /** 00158 * @brief RSSI filter gain value enumeration. 00159 */ 00160 typedef enum 00161 { 00162 RSSI_FG_0=0x00, 00163 RSSI_FG_1=0x10, 00164 RSSI_FG_2=0x20, 00165 RSSI_FG_3=0x30, 00166 RSSI_FG_4=0x40, 00167 RSSI_FG_5=0x50, 00168 RSSI_FG_6=0x60, 00169 RSSI_FG_7=0x70, 00170 RSSI_FG_8=0x80, 00171 RSSI_FG_9=0x90, 00172 RSSI_FG_10=0xA0, 00173 RSSI_FG_11=0xB0, 00174 RSSI_FG_12=0xC0, 00175 RSSI_FG_13=0xD0, 00176 RSSI_FG_14=0xE0, /*<! recommended value */ 00177 RSSI_FG_15=0xF0 00178 00179 } RssiFilterGain; 00180 00181 #define IS_RSSI_FILTER_GAIN(VALUE) (VALUE==RSSI_FG_0 ||\ 00182 VALUE==RSSI_FG_1 ||\ 00183 VALUE==RSSI_FG_2 ||\ 00184 VALUE==RSSI_FG_3 ||\ 00185 VALUE==RSSI_FG_4 ||\ 00186 VALUE==RSSI_FG_5 ||\ 00187 VALUE==RSSI_FG_6 ||\ 00188 VALUE==RSSI_FG_7 ||\ 00189 VALUE==RSSI_FG_8 ||\ 00190 VALUE==RSSI_FG_9 ||\ 00191 VALUE==RSSI_FG_10 ||\ 00192 VALUE==RSSI_FG_11 ||\ 00193 VALUE==RSSI_FG_12 ||\ 00194 VALUE==RSSI_FG_13 ||\ 00195 VALUE==RSSI_FG_14 ||\ 00196 VALUE==RSSI_FG_15) 00197 00198 /** 00199 * @brief CS mode enumeration. 00200 */ 00201 typedef enum 00202 { 00203 CS_MODE_STATIC_3DB=0x00, 00204 CS_MODE_DYNAMIC_6DB=0x04, 00205 CS_MODE_DYNAMIC_12DB=0x08, 00206 CS_MODE_DYNAMIC_18DB=0x0C 00207 00208 } CSMode; 00209 00210 #define IS_CS_MODE(MODE) (MODE==CS_MODE_STATIC_3DB ||\ 00211 MODE==CS_MODE_DYNAMIC_6DB ||\ 00212 MODE==CS_MODE_DYNAMIC_12DB ||\ 00213 MODE==CS_MODE_DYNAMIC_18DB) 00214 00215 /** 00216 *@} 00217 */ 00218 00219 00220 /** 00221 * @defgroup Qi_Exported_Constants QI Exported Constants 00222 * @{ 00223 */ 00224 00225 /* range for the RSSI Threshold in dBm */ 00226 #define IS_RSSI_THR_DBM(VALUE) (VALUE>=-130 && VALUE<=-2) 00227 00228 /** 00229 *@} 00230 */ 00231 00232 00233 /** 00234 * @defgroup Qi_Exported_Macros QI Exported Macros 00235 * @{ 00236 */ 00237 00238 /** 00239 * @brief Macro to obtain the RSSI value in dBm 00240 * @param None. 00241 * @retval RSSI in dBm. 00242 * This parameter is a float. 00243 */ 00244 #define SpiritQiGetRssidBm() (-120.0+((float)(SpiritQiGetRssi()-20))/2) 00245 00246 /** 00247 *@} 00248 */ 00249 00250 00251 /** 00252 * @defgroup Qi_Exported_Functions QI Exported Functions 00253 * @{ 00254 */ 00255 00256 void SpiritQiPqiCheck(SpiritFunctionalState xNewState); 00257 void SpiritQiSqiCheck(SpiritFunctionalState xNewState); 00258 void SpiritQiSetPqiThreshold(PqiThreshold xPqiThr); 00259 PqiThreshold SpiritQiGetPqiThreshold(void); 00260 void SpiritQiSetSqiThreshold(SqiThreshold xSqiThr); 00261 SqiThreshold SpiritQiGetSqiThreshold(void); 00262 void SpiritQiSetRssiThreshold(uint8_t cRssiThr); 00263 uint8_t SpiritQiGetRssiThreshold(void); 00264 uint8_t SpiritQiComputeRssiThreshold(int cDbmValue); 00265 void SpiritQiSetRssiThresholddBm(int nDbmValue); 00266 uint8_t SpiritQiGetPqi(void); 00267 uint8_t SpiritQiGetSqi(void); 00268 uint8_t SpiritQiGetLqi(void); 00269 SpiritFlagStatus SpiritQiGetCs(void); 00270 uint8_t SpiritQiGetRssi(void); 00271 void SpiritQiSetRssiFilterGain(RssiFilterGain xRssiFg); 00272 RssiFilterGain SpiritQiGetRssiFilterGain(void); 00273 void SpiritQiSetCsMode(CSMode xCsMode); 00274 CSMode SpiritQiGetCsMode(void); 00275 void SpiritQiCsTimeoutMask(SpiritFunctionalState xNewState); 00276 void SpiritQiPqiTimeoutMask(SpiritFunctionalState xNewState); 00277 void SpiritQiSqiTimeoutMask(SpiritFunctionalState xNewState); 00278 00279 00280 /** 00281 *@} 00282 */ 00283 00284 /** 00285 *@} 00286 */ 00287 00288 00289 /** 00290 *@} 00291 */ 00292 00293 00294 #ifdef __cplusplus 00295 } 00296 #endif 00297 00298 #endif 00299 00300 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/
Generated on Wed Jul 13 2022 00:11:57 by
