Minor changes to support ADMW FWv1.17.75

Committer:
Vkadaba
Date:
Wed Jun 05 05:39:15 2019 +0000
Revision:
5:0728bde67bdb
Child:
6:9d393a9677f4
Replaced all references to ADISense/ADISENSE1000/adi_sense with ADMW/ADMW1001/admw and the prject builds.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Vkadaba 5:0728bde67bdb 1 /*
Vkadaba 5:0728bde67bdb 2 Copyright 2018 (c) Analog Devices, Inc.
Vkadaba 5:0728bde67bdb 3
Vkadaba 5:0728bde67bdb 4 All rights reserved.
Vkadaba 5:0728bde67bdb 5
Vkadaba 5:0728bde67bdb 6 Redistribution and use in source and binary forms, with or without
Vkadaba 5:0728bde67bdb 7 modification, are permitted provided that the following conditions are met:
Vkadaba 5:0728bde67bdb 8 - Redistributions of source code must retain the above copyright
Vkadaba 5:0728bde67bdb 9 notice, this list of conditions and the following disclaimer.
Vkadaba 5:0728bde67bdb 10 - Redistributions in binary form must reproduce the above copyright
Vkadaba 5:0728bde67bdb 11 notice, this list of conditions and the following disclaimer in
Vkadaba 5:0728bde67bdb 12 the documentation and/or other materials provided with the
Vkadaba 5:0728bde67bdb 13 distribution.
Vkadaba 5:0728bde67bdb 14 - Neither the name of Analog Devices, Inc. nor the names of its
Vkadaba 5:0728bde67bdb 15 contributors may be used to endorse or promote products derived
Vkadaba 5:0728bde67bdb 16 from this software without specific prior written permission.
Vkadaba 5:0728bde67bdb 17 - The use of this software may or may not infringe the patent rights
Vkadaba 5:0728bde67bdb 18 of one or more patent holders. This license does not release you
Vkadaba 5:0728bde67bdb 19 from the requirement that you obtain separate licenses from these
Vkadaba 5:0728bde67bdb 20 patent holders to use this software.
Vkadaba 5:0728bde67bdb 21 - Use of the software either in source or binary form, must be run
Vkadaba 5:0728bde67bdb 22 on or directly connected to an Analog Devices Inc. component.
Vkadaba 5:0728bde67bdb 23
Vkadaba 5:0728bde67bdb 24 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR
Vkadaba 5:0728bde67bdb 25 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
Vkadaba 5:0728bde67bdb 26 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
Vkadaba 5:0728bde67bdb 27 IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT,
Vkadaba 5:0728bde67bdb 28 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
Vkadaba 5:0728bde67bdb 29 LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR
Vkadaba 5:0728bde67bdb 30 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Vkadaba 5:0728bde67bdb 31 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Vkadaba 5:0728bde67bdb 32 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Vkadaba 5:0728bde67bdb 33 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Vkadaba 5:0728bde67bdb 34 */
Vkadaba 5:0728bde67bdb 35
Vkadaba 5:0728bde67bdb 36 /*
Vkadaba 5:0728bde67bdb 37 Copyright 2017 (c) Analog Devices, Inc.
Vkadaba 5:0728bde67bdb 38
Vkadaba 5:0728bde67bdb 39 All rights reserved.
Vkadaba 5:0728bde67bdb 40
Vkadaba 5:0728bde67bdb 41 Redistribution and use in source and binary forms, with or without
Vkadaba 5:0728bde67bdb 42 modification, are permitted provided that the following conditions are met:
Vkadaba 5:0728bde67bdb 43 - Redistributions of source code must retain the above copyright
Vkadaba 5:0728bde67bdb 44 notice, this list of conditions and the following disclaimer.
Vkadaba 5:0728bde67bdb 45 - Redistributions in binary form must reproduce the above copyright
Vkadaba 5:0728bde67bdb 46 notice, this list of conditions and the following disclaimer in
Vkadaba 5:0728bde67bdb 47 the documentation and/or other materials provided with the
Vkadaba 5:0728bde67bdb 48 distribution.
Vkadaba 5:0728bde67bdb 49 - Neither the name of Analog Devices, Inc. nor the names of its
Vkadaba 5:0728bde67bdb 50 contributors may be used to endorse or promote products derived
Vkadaba 5:0728bde67bdb 51 from this software without specific prior written permission.
Vkadaba 5:0728bde67bdb 52 - The use of this software may or may not infringe the patent rights
Vkadaba 5:0728bde67bdb 53 of one or more patent holders. This license does not release you
Vkadaba 5:0728bde67bdb 54 from the requirement that you obtain separate licenses from these
Vkadaba 5:0728bde67bdb 55 patent holders to use this software.
Vkadaba 5:0728bde67bdb 56 - Use of the software either in source or binary form, must be run
Vkadaba 5:0728bde67bdb 57 on or directly connected to an Analog Devices Inc. component.
Vkadaba 5:0728bde67bdb 58
Vkadaba 5:0728bde67bdb 59 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR
Vkadaba 5:0728bde67bdb 60 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
Vkadaba 5:0728bde67bdb 61 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
Vkadaba 5:0728bde67bdb 62 IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT,
Vkadaba 5:0728bde67bdb 63 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
Vkadaba 5:0728bde67bdb 64 LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR
Vkadaba 5:0728bde67bdb 65 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Vkadaba 5:0728bde67bdb 66 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Vkadaba 5:0728bde67bdb 67 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Vkadaba 5:0728bde67bdb 68 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Vkadaba 5:0728bde67bdb 69 */
Vkadaba 5:0728bde67bdb 70
Vkadaba 5:0728bde67bdb 71 /*!
Vkadaba 5:0728bde67bdb 72 ******************************************************************************
Vkadaba 5:0728bde67bdb 73 * @file: adi_sense_api.h
Vkadaba 5:0728bde67bdb 74 * @brief: ADSNS1000 Host Library Application Programming Interface (API)
Vkadaba 5:0728bde67bdb 75 *-----------------------------------------------------------------------------
Vkadaba 5:0728bde67bdb 76 */
Vkadaba 5:0728bde67bdb 77
Vkadaba 5:0728bde67bdb 78 #ifndef __ADMW1001_API_H__
Vkadaba 5:0728bde67bdb 79 #define __ADMW1001_API_H__
Vkadaba 5:0728bde67bdb 80
Vkadaba 5:0728bde67bdb 81
Vkadaba 5:0728bde67bdb 82 #include "inc/admw_types.h"
Vkadaba 5:0728bde67bdb 83 #include "inc/admw_config_types.h"
Vkadaba 5:0728bde67bdb 84 #include "inc/admw_platform.h"
Vkadaba 5:0728bde67bdb 85 #include "inc/admw1001/admw1001_config.h"
Vkadaba 5:0728bde67bdb 86 #include "inc/admw1001/admw1001_lut_data.h"
Vkadaba 5:0728bde67bdb 87
Vkadaba 5:0728bde67bdb 88 /*! @ingroup ADMW_Api */
Vkadaba 5:0728bde67bdb 89
Vkadaba 5:0728bde67bdb 90 /*! @defgroup ADMW1001_Api ADMW1001 Host Library API
Vkadaba 5:0728bde67bdb 91 * ADMW1001 device-specific API function prototypes.
Vkadaba 5:0728bde67bdb 92 * These are supplementary to the common ADMW Host Library API.
Vkadaba 5:0728bde67bdb 93 * @{
Vkadaba 5:0728bde67bdb 94 */
Vkadaba 5:0728bde67bdb 95
Vkadaba 5:0728bde67bdb 96 #ifdef __cplusplus
Vkadaba 5:0728bde67bdb 97 extern "C" {
Vkadaba 5:0728bde67bdb 98 #endif
Vkadaba 5:0728bde67bdb 99
Vkadaba 5:0728bde67bdb 100 /*!
Vkadaba 5:0728bde67bdb 101 * @brief Read one or more device registers at the specified register address.
Vkadaba 5:0728bde67bdb 102 *
Vkadaba 5:0728bde67bdb 103 * @param[in] hDevice ADMW1001 device context handle
Vkadaba 5:0728bde67bdb 104 * @param[in] nAddress Register map address to read from
Vkadaba 5:0728bde67bdb 105 * @param[out] pData Pointer to return the register map data
Vkadaba 5:0728bde67bdb 106 * @param[in] nLength Number of bytes of data to read from the register map
Vkadaba 5:0728bde67bdb 107 *
Vkadaba 5:0728bde67bdb 108 * @return Status
Vkadaba 5:0728bde67bdb 109 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 110 *
Vkadaba 5:0728bde67bdb 111 * @details Provides direct byte-level read access to the device register map.
Vkadaba 5:0728bde67bdb 112 * The size and format of the register(s) must be known.
Vkadaba 5:0728bde67bdb 113 *
Vkadaba 5:0728bde67bdb 114 * @note Reads from special "keyhole" or "FIFO" registers will be handled
Vkadaba 5:0728bde67bdb 115 * according to documentation for those registers.
Vkadaba 5:0728bde67bdb 116 */
Vkadaba 5:0728bde67bdb 117 ADMW_RESULT admw1001_ReadRegister(
Vkadaba 5:0728bde67bdb 118 ADMW_DEVICE_HANDLE const hDevice,
Vkadaba 5:0728bde67bdb 119 uint16_t const nAddress,
Vkadaba 5:0728bde67bdb 120 void * const pData,
Vkadaba 5:0728bde67bdb 121 unsigned const nLength);
Vkadaba 5:0728bde67bdb 122
Vkadaba 5:0728bde67bdb 123 /*!
Vkadaba 5:0728bde67bdb 124 * @brief Write one or more device registers at the specified register address.
Vkadaba 5:0728bde67bdb 125 *
Vkadaba 5:0728bde67bdb 126 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 127 * @param[in] nAddress Register map address to read from
Vkadaba 5:0728bde67bdb 128 * @param[out] pData Pointer to return the register map data
Vkadaba 5:0728bde67bdb 129 * @param[in] nLength Number of bytes of data to read from the register map
Vkadaba 5:0728bde67bdb 130 *
Vkadaba 5:0728bde67bdb 131 * @return Status
Vkadaba 5:0728bde67bdb 132 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 133 *
Vkadaba 5:0728bde67bdb 134 * @details Provides direct byte-level write access to the device register map.
Vkadaba 5:0728bde67bdb 135 * The size and format of the register(s) must be known.
Vkadaba 5:0728bde67bdb 136 *
Vkadaba 5:0728bde67bdb 137 * @note Writes to read-only registers will be ignored by the device.
Vkadaba 5:0728bde67bdb 138 * @note Writes to special "keyhole" registers will be handled according to
Vkadaba 5:0728bde67bdb 139 * documentation for those registers.
Vkadaba 5:0728bde67bdb 140 */
Vkadaba 5:0728bde67bdb 141 ADMW_RESULT admw1001_WriteRegister(
Vkadaba 5:0728bde67bdb 142 ADMW_DEVICE_HANDLE const hDevice,
Vkadaba 5:0728bde67bdb 143 uint16_t const nAddress,
Vkadaba 5:0728bde67bdb 144 void * const pData,
Vkadaba 5:0728bde67bdb 145 unsigned const nLength);
Vkadaba 5:0728bde67bdb 146
Vkadaba 5:0728bde67bdb 147 /*!
Vkadaba 5:0728bde67bdb 148 * @brief Update power configuration settings on the device.
Vkadaba 5:0728bde67bdb 149 *
Vkadaba 5:0728bde67bdb 150 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 151 * @param[in] pPowerConfig Power configuration details
Vkadaba 5:0728bde67bdb 152 *
Vkadaba 5:0728bde67bdb 153 * @return Status
Vkadaba 5:0728bde67bdb 154 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 155 *
Vkadaba 5:0728bde67bdb 156 * @details Translates configuration details provided into device-specific
Vkadaba 5:0728bde67bdb 157 * register settings and updates device configuration registers.
Vkadaba 5:0728bde67bdb 158 *
Vkadaba 5:0728bde67bdb 159 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 160 */
Vkadaba 5:0728bde67bdb 161 ADMW_RESULT admw1001_SetPowerConfig(
Vkadaba 5:0728bde67bdb 162 ADMW_DEVICE_HANDLE hDevice,
Vkadaba 5:0728bde67bdb 163 ADMW1001_POWER_CONFIG *pPowerConfig);
Vkadaba 5:0728bde67bdb 164
Vkadaba 5:0728bde67bdb 165 /*!
Vkadaba 5:0728bde67bdb 166 * @brief Update measurement configuration settings on the device.
Vkadaba 5:0728bde67bdb 167 *
Vkadaba 5:0728bde67bdb 168 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 169 * @param[in] pMeasurementConfig Measurement configuration details
Vkadaba 5:0728bde67bdb 170 *
Vkadaba 5:0728bde67bdb 171 * @return Status
Vkadaba 5:0728bde67bdb 172 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 173 *
Vkadaba 5:0728bde67bdb 174 * @details Translates configuration details provided into device-specific
Vkadaba 5:0728bde67bdb 175 * register settings and updates device configuration registers.
Vkadaba 5:0728bde67bdb 176 *
Vkadaba 5:0728bde67bdb 177 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 178 */
Vkadaba 5:0728bde67bdb 179 ADMW_RESULT admw1001_SetMeasurementConfig(
Vkadaba 5:0728bde67bdb 180 ADMW_DEVICE_HANDLE hDevice,
Vkadaba 5:0728bde67bdb 181 ADMW1001_MEASUREMENT_CONFIG *pMeasurementConfig);
Vkadaba 5:0728bde67bdb 182
Vkadaba 5:0728bde67bdb 183 /*!
Vkadaba 5:0728bde67bdb 184 * @brief Update diagnostics configuration settings on the device.
Vkadaba 5:0728bde67bdb 185 *
Vkadaba 5:0728bde67bdb 186 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 187 * @param[in] pDiagnosticsConfig Diagnostics configuration details
Vkadaba 5:0728bde67bdb 188 *
Vkadaba 5:0728bde67bdb 189 * @return Status
Vkadaba 5:0728bde67bdb 190 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 191 *
Vkadaba 5:0728bde67bdb 192 * @details Translates configuration details provided into device-specific
Vkadaba 5:0728bde67bdb 193 * register settings and updates device configuration registers.
Vkadaba 5:0728bde67bdb 194 *
Vkadaba 5:0728bde67bdb 195 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 196 */
Vkadaba 5:0728bde67bdb 197 ADMW_RESULT admw1001_SetDiagnosticsConfig(
Vkadaba 5:0728bde67bdb 198 ADMW_DEVICE_HANDLE hDevice,
Vkadaba 5:0728bde67bdb 199 ADMW1001_DIAGNOSTICS_CONFIG *pDiagnosticsConfig);
Vkadaba 5:0728bde67bdb 200
Vkadaba 5:0728bde67bdb 201 /*!
Vkadaba 5:0728bde67bdb 202 * @brief Update channel configuration settings for a specific channel.
Vkadaba 5:0728bde67bdb 203 *
Vkadaba 5:0728bde67bdb 204 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 205 * @param[in] eChannelId Selects the channel to be updated
Vkadaba 5:0728bde67bdb 206 * @param[in] pChannelConfig Channel configuration details
Vkadaba 5:0728bde67bdb 207 *
Vkadaba 5:0728bde67bdb 208 * @return Status
Vkadaba 5:0728bde67bdb 209 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 210 *
Vkadaba 5:0728bde67bdb 211 * @details Translates configuration details provided into device-specific
Vkadaba 5:0728bde67bdb 212 * register settings and updates device configuration registers.
Vkadaba 5:0728bde67bdb 213 * Allows individual channel configuration details to be dynamically
Vkadaba 5:0728bde67bdb 214 * adjusted without rewriting the full device configuration.
Vkadaba 5:0728bde67bdb 215 *
Vkadaba 5:0728bde67bdb 216 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 217 */
Vkadaba 5:0728bde67bdb 218 ADMW_RESULT admw1001_SetChannelConfig(
Vkadaba 5:0728bde67bdb 219 ADMW_DEVICE_HANDLE hDevice,
Vkadaba 5:0728bde67bdb 220 ADMW1001_CHANNEL_ID eChannelId,
Vkadaba 5:0728bde67bdb 221 ADMW1001_CHANNEL_CONFIG *pChannelConfig);
Vkadaba 5:0728bde67bdb 222
Vkadaba 5:0728bde67bdb 223 /*!
Vkadaba 5:0728bde67bdb 224 * @brief Update number of measurements-per-cycle for a specific channel.
Vkadaba 5:0728bde67bdb 225 *
Vkadaba 5:0728bde67bdb 226 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 227 * @param[in] eChannelId Selects the channel to be updated
Vkadaba 5:0728bde67bdb 228 * @param[in] nMeasurementsPerCycle Specifies the number of measurements to be
Vkadaba 5:0728bde67bdb 229 * obtained from this channel in each
Vkadaba 5:0728bde67bdb 230 * measurement cycle. Set as 0 to disable the
Vkadaba 5:0728bde67bdb 231 * channel (omit from measurement cycle).
Vkadaba 5:0728bde67bdb 232 *
Vkadaba 5:0728bde67bdb 233 * @return Status
Vkadaba 5:0728bde67bdb 234 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 235 *
Vkadaba 5:0728bde67bdb 236 * @details Translates configuration details provided into device-specific
Vkadaba 5:0728bde67bdb 237 * register settings and updates device configuration registers.
Vkadaba 5:0728bde67bdb 238 * Allows individual channels to be dynamically enabled/disabled, and
Vkadaba 5:0728bde67bdb 239 * measurements-per-cycle to be adjusted.
Vkadaba 5:0728bde67bdb 240 *
Vkadaba 5:0728bde67bdb 241 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 242 */
Vkadaba 5:0728bde67bdb 243 ADMW_RESULT admw1001_SetChannelCount(
Vkadaba 5:0728bde67bdb 244 ADMW_DEVICE_HANDLE hDevice,
Vkadaba 5:0728bde67bdb 245 ADMW1001_CHANNEL_ID eChannelId,
Vkadaba 5:0728bde67bdb 246 uint32_t nMeasurementsPerCycle);
Vkadaba 5:0728bde67bdb 247
Vkadaba 5:0728bde67bdb 248 /*!
Vkadaba 5:0728bde67bdb 249 * @brief Update priority level for a specific channel.
Vkadaba 5:0728bde67bdb 250 *
Vkadaba 5:0728bde67bdb 251 * @param[in] hDevice ADI Sense device context handle
Vkadaba 5:0728bde67bdb 252 * @param[in] eChannelId Selects the channel to be updated
Vkadaba 5:0728bde67bdb 253 * @param[in] ePriority Specifies the channel priority level
Vkadaba 5:0728bde67bdb 254 *
Vkadaba 5:0728bde67bdb 255 * @return Status
Vkadaba 5:0728bde67bdb 256 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 257 *
Vkadaba 5:0728bde67bdb 258 * @details Translates configuration details provided into device-specific
Vkadaba 5:0728bde67bdb 259 * register settings and updates device configuration registers.
Vkadaba 5:0728bde67bdb 260 * Allows individual channels to be dynamically re-prioritised.
Vkadaba 5:0728bde67bdb 261 *
Vkadaba 5:0728bde67bdb 262 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 263 */
Vkadaba 5:0728bde67bdb 264 ADMW_RESULT admw1001_SetChannelPriority(
Vkadaba 5:0728bde67bdb 265 ADMW_DEVICE_HANDLE hDevice,
Vkadaba 5:0728bde67bdb 266 ADMW1001_CHANNEL_ID eChannelId,
Vkadaba 5:0728bde67bdb 267 ADMW1001_CHANNEL_PRIORITY ePriority);
Vkadaba 5:0728bde67bdb 268
Vkadaba 5:0728bde67bdb 269 /*!
Vkadaba 5:0728bde67bdb 270 * @brief Update the measurement threshold limits for a specified channel.
Vkadaba 5:0728bde67bdb 271 *
Vkadaba 5:0728bde67bdb 272 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 273 * @param[in] eChannelId Selects the channel to be updated
Vkadaba 5:0728bde67bdb 274 * @param[in] fHighThresholdLimit Optional maximum threshold value for each
Vkadaba 5:0728bde67bdb 275 * processed sample, to be checked prior to
Vkadaba 5:0728bde67bdb 276 * publishing. A channel ALERT condition is
Vkadaba 5:0728bde67bdb 277 * raised if the processed value is higher than
Vkadaba 5:0728bde67bdb 278 * this threshold. Set to NaN if not required.
Vkadaba 5:0728bde67bdb 279 * @param[in] fLowThresholdLimit Optional minimum threshold value for each
Vkadaba 5:0728bde67bdb 280 * processed sample, to be checked prior to
Vkadaba 5:0728bde67bdb 281 * publishing. A channel ALERT condition is
Vkadaba 5:0728bde67bdb 282 * raised if the processed value is lower than
Vkadaba 5:0728bde67bdb 283 * this threshold. Set to NaN if not required.
Vkadaba 5:0728bde67bdb 284 *
Vkadaba 5:0728bde67bdb 285 * @return Status
Vkadaba 5:0728bde67bdb 286 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 287 *
Vkadaba 5:0728bde67bdb 288 * @details Translates configuration details provided into device-specific
Vkadaba 5:0728bde67bdb 289 * register settings and updates device configuration registers.
Vkadaba 5:0728bde67bdb 290 * Allows individual channel thresholds to be dynamically adjusted.
Vkadaba 5:0728bde67bdb 291 *
Vkadaba 5:0728bde67bdb 292 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 293 */
Vkadaba 5:0728bde67bdb 294 ADMW_RESULT admw1001_SetChannelThresholdLimits(
Vkadaba 5:0728bde67bdb 295 ADMW_DEVICE_HANDLE hDevice,
Vkadaba 5:0728bde67bdb 296 ADMW1001_CHANNEL_ID eChannelId,
Vkadaba 5:0728bde67bdb 297 float32_t fHighThresholdLimit,
Vkadaba 5:0728bde67bdb 298 float32_t fLowThresholdLimit);
Vkadaba 5:0728bde67bdb 299
Vkadaba 5:0728bde67bdb 300
Vkadaba 5:0728bde67bdb 301 /*!
Vkadaba 5:0728bde67bdb 302 * @brief Set a sensor specific parameter for a specified channel.
Vkadaba 5:0728bde67bdb 303 *
Vkadaba 5:0728bde67bdb 304 * @param[in] hDevice ADI Sense device context handle
Vkadaba 5:0728bde67bdb 305 * @param[in] eChannelId Selects the channel to be updated
Vkadaba 5:0728bde67bdb 306 * @param[in] fSensorParam Sensor specific parameter
Vkadaba 5:0728bde67bdb 307 *
Vkadaba 5:0728bde67bdb 308 * @return Status
Vkadaba 5:0728bde67bdb 309 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 310 *
Vkadaba 5:0728bde67bdb 311 * @details Translates configuration details provided into device-specific
Vkadaba 5:0728bde67bdb 312 * register settings and updates device configuration registers.
Vkadaba 5:0728bde67bdb 313 * Allows optional sensor-specific parameter to be specified
Vkadaba 5:0728bde67bdb 314 *
Vkadaba 5:0728bde67bdb 315 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 316 */
Vkadaba 5:0728bde67bdb 317 ADMW_RESULT admw1001_SetSensorParameter(
Vkadaba 5:0728bde67bdb 318 ADMW_DEVICE_HANDLE hDevice,
Vkadaba 5:0728bde67bdb 319 ADMW1001_CHANNEL_ID eChannelId,
Vkadaba 5:0728bde67bdb 320 float32_t fSensorParam);
Vkadaba 5:0728bde67bdb 321 /*!
Vkadaba 5:0728bde67bdb 322 * @brief Update the extra settling time for a specified channel.
Vkadaba 5:0728bde67bdb 323 *
Vkadaba 5:0728bde67bdb 324 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 325 * @param[in] eChannelId Selects the channel to be updated
Vkadaba 5:0728bde67bdb 326 * @param[in] nSettlingTime A minimum settling time is applied internally for
Vkadaba 5:0728bde67bdb 327 * each channel, based on the sensor type. However,
Vkadaba 5:0728bde67bdb 328 * additional settling time (microseconds) can
Vkadaba 5:0728bde67bdb 329 * optionally be specified here. Set to 0 if not
Vkadaba 5:0728bde67bdb 330 * required.
Vkadaba 5:0728bde67bdb 331 *
Vkadaba 5:0728bde67bdb 332 * @return Status
Vkadaba 5:0728bde67bdb 333 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 334 *
Vkadaba 5:0728bde67bdb 335 * @details Translates configuration details provided into device-specific
Vkadaba 5:0728bde67bdb 336 * register settings and updates device configuration registers.
Vkadaba 5:0728bde67bdb 337 * Allows individual channel settling times to be dynamically adjusted.
Vkadaba 5:0728bde67bdb 338 *
Vkadaba 5:0728bde67bdb 339 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 340 */
Vkadaba 5:0728bde67bdb 341 ADMW_RESULT admw1001_SetChannelSettlingTime(
Vkadaba 5:0728bde67bdb 342 ADMW_DEVICE_HANDLE hDevice,
Vkadaba 5:0728bde67bdb 343 ADMW1001_CHANNEL_ID eChannelId,
Vkadaba 5:0728bde67bdb 344 uint32_t nSettlingTime);
Vkadaba 5:0728bde67bdb 345
Vkadaba 5:0728bde67bdb 346 #ifdef __V2_3_CFG_FMT__
Vkadaba 5:0728bde67bdb 347 /*!
Vkadaba 5:0728bde67bdb 348 * @brief Enable access to advanced sensor configuration options.
Vkadaba 5:0728bde67bdb 349 *
Vkadaba 5:0728bde67bdb 350 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 351 * @param[in] key Key to unlock advanced access
Vkadaba 5:0728bde67bdb 352 *
Vkadaba 5:0728bde67bdb 353 * @return Status
Vkadaba 5:0728bde67bdb 354 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 355 *
Vkadaba 5:0728bde67bdb 356 * @details When the correct access key is provided, access to advanced sensor
Vkadaba 5:0728bde67bdb 357 * configuration options and use of advanced sensor types is enabled.
Vkadaba 5:0728bde67bdb 358 *
Vkadaba 5:0728bde67bdb 359 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 360 */
Vkadaba 5:0728bde67bdb 361 ADMW_RESULT admw1001_SetAdvancedAccess(
Vkadaba 5:0728bde67bdb 362 ADMW_DEVICE_HANDLE const hDevice,
Vkadaba 5:0728bde67bdb 363 ADMW1001_ADVANCED_ACCESS_KEY key);
Vkadaba 5:0728bde67bdb 364 #endif
Vkadaba 5:0728bde67bdb 365
Vkadaba 5:0728bde67bdb 366 /*!
Vkadaba 5:0728bde67bdb 367 * @brief Assemble a list of separate Look-Up Tables into a single buffer
Vkadaba 5:0728bde67bdb 368 *
Vkadaba 5:0728bde67bdb 369 * @param[out] pLutBuffer Pointer to the Look-Up Table data buffer where
Vkadaba 5:0728bde67bdb 370 * the assembled Look-Up Table data will be placed
Vkadaba 5:0728bde67bdb 371 * @param[in] nLutBufferSize Allocated size, in bytes, of the output data buffer
Vkadaba 5:0728bde67bdb 372 * @param[in] nNumTables Number of tables to add to the Look-Up Table buffer
Vkadaba 5:0728bde67bdb 373 * @param[in] ppDesc Array of pointers to the table descriptors to be added
Vkadaba 5:0728bde67bdb 374 * @param[in] ppData Array of pointers to the table data to be added
Vkadaba 5:0728bde67bdb 375 *
Vkadaba 5:0728bde67bdb 376 * @return Status
Vkadaba 5:0728bde67bdb 377 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 378 *
Vkadaba 5:0728bde67bdb 379 * @details This utiliity function fills the Look-up Table header fields; then
Vkadaba 5:0728bde67bdb 380 * walks through the array of individual table descriptor and data
Vkadaba 5:0728bde67bdb 381 * pointers provided, appending (copying) each one to the Look-Up Table
Vkadaba 5:0728bde67bdb 382 * data buffer. The length and crc16 fields of each table descriptor
Vkadaba 5:0728bde67bdb 383 * will be calculated and filled by this function, but other fields in
Vkadaba 5:0728bde67bdb 384 * the descriptor structure must be filled by the caller beforehand.
Vkadaba 5:0728bde67bdb 385 *
Vkadaba 5:0728bde67bdb 386 * @note The assembled LUT data buffer filled by this function can then be
Vkadaba 5:0728bde67bdb 387 * written to the device memory using @ref admw1001_SetLutData.
Vkadaba 5:0728bde67bdb 388 */
Vkadaba 5:0728bde67bdb 389 ADMW_RESULT admw1001_AssembleLutData(
Vkadaba 5:0728bde67bdb 390 ADMW1001_LUT * pLutBuffer,
Vkadaba 5:0728bde67bdb 391 unsigned nLutBufferSize,
Vkadaba 5:0728bde67bdb 392 unsigned const nNumTables,
Vkadaba 5:0728bde67bdb 393 ADMW1001_LUT_DESCRIPTOR * const ppDesc[],
Vkadaba 5:0728bde67bdb 394 ADMW1001_LUT_TABLE_DATA * const ppData[]);
Vkadaba 5:0728bde67bdb 395
Vkadaba 5:0728bde67bdb 396 /*!
Vkadaba 5:0728bde67bdb 397 * @brief Write Look-Up Table data to the device memory
Vkadaba 5:0728bde67bdb 398 *
Vkadaba 5:0728bde67bdb 399 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 400 * @param[out] pLutData Pointer to the Look-Up Table data structure
Vkadaba 5:0728bde67bdb 401 *
Vkadaba 5:0728bde67bdb 402 * @return Status
Vkadaba 5:0728bde67bdb 403 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 404 *
Vkadaba 5:0728bde67bdb 405 * @details Validates the Look-Up Table data format and loads it into
Vkadaba 5:0728bde67bdb 406 * device memory via dedicated keyhole registers.
Vkadaba 5:0728bde67bdb 407 *
Vkadaba 5:0728bde67bdb 408 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 409 */
Vkadaba 5:0728bde67bdb 410 ADMW_RESULT admw1001_SetLutData(
Vkadaba 5:0728bde67bdb 411 ADMW_DEVICE_HANDLE const hDevice,
Vkadaba 5:0728bde67bdb 412 ADMW1001_LUT * const pLutData);
Vkadaba 5:0728bde67bdb 413
Vkadaba 5:0728bde67bdb 414 /*!
Vkadaba 5:0728bde67bdb 415 * @brief Write Look-Up Table raw data to the device memory
Vkadaba 5:0728bde67bdb 416 *
Vkadaba 5:0728bde67bdb 417 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 418 * @param[out] pLutData Pointer to the Look-Up Table raw data structure
Vkadaba 5:0728bde67bdb 419 *
Vkadaba 5:0728bde67bdb 420 * @return Status
Vkadaba 5:0728bde67bdb 421 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 422 *
Vkadaba 5:0728bde67bdb 423 * @details This can be used instead of @ref admw1001_SetLutData for
Vkadaba 5:0728bde67bdb 424 * loading LUT data from the alternative raw data format. See
Vkadaba 5:0728bde67bdb 425 * @ref admw1001_SetLutData for more information.
Vkadaba 5:0728bde67bdb 426 *
Vkadaba 5:0728bde67bdb 427 * @note Settings are not applied until adi_sense_ApplyConfigUpdates() is called
Vkadaba 5:0728bde67bdb 428 */
Vkadaba 5:0728bde67bdb 429 ADMW_RESULT admw1001_SetLutDataRaw(
Vkadaba 5:0728bde67bdb 430 ADMW_DEVICE_HANDLE const hDevice,
Vkadaba 5:0728bde67bdb 431 ADMW1001_LUT_RAW * const pLutData);
Vkadaba 5:0728bde67bdb 432
Vkadaba 5:0728bde67bdb 433 /*!
Vkadaba 5:0728bde67bdb 434 * @brief Get the number of samples available when DATAREADY status is asserted.
Vkadaba 5:0728bde67bdb 435 *
Vkadaba 5:0728bde67bdb 436 * @param[in] hDevice ADISENSE device context handle
Vkadaba 5:0728bde67bdb 437 * @param[in] eMeasurementMode Must be set to the same value used for @ref
Vkadaba 5:0728bde67bdb 438 * adi_sense_StartMeasurement().
Vkadaba 5:0728bde67bdb 439 * @param[out] peOperatingMode Pointer to return the configured operating mode
Vkadaba 5:0728bde67bdb 440 * @param[out] peDataReadyMode Pointer to return the configured data publishing mode
Vkadaba 5:0728bde67bdb 441 * @param[out] pnSamplesPerDataready Pointer to return the calculated number of samples
Vkadaba 5:0728bde67bdb 442 * available when DATAREADY is asserted
Vkadaba 5:0728bde67bdb 443 * @param[out] pnSamplesPerCycle Pointer to return the calculated number of samples
Vkadaba 5:0728bde67bdb 444 * produced per measurement cycle
Vkadaba 5:0728bde67bdb 445 * @param[out] pnBytesPerSample Pointer to return the size, in bytes, of each sample
Vkadaba 5:0728bde67bdb 446 *
Vkadaba 5:0728bde67bdb 447 * @return Status
Vkadaba 5:0728bde67bdb 448 * - #ADMW_SUCCESS Call completed successfully.
Vkadaba 5:0728bde67bdb 449 *
Vkadaba 5:0728bde67bdb 450 * @details Examines the current configuration settings in the device registers
Vkadaba 5:0728bde67bdb 451 * to calculate the number of samples available whenever the DATAREADY
Vkadaba 5:0728bde67bdb 452 * signal is asserted, along with other related information. This may
Vkadaba 5:0728bde67bdb 453 * be used to allocate buffers to store samples and to determine how
Vkadaba 5:0728bde67bdb 454 * many samples to retrieve whenever the DATAREADY status is asserted.
Vkadaba 5:0728bde67bdb 455 */
Vkadaba 5:0728bde67bdb 456 ADMW_RESULT admw1001_GetDataReadyModeInfo(
Vkadaba 5:0728bde67bdb 457 ADMW_DEVICE_HANDLE const hDevice,
Vkadaba 5:0728bde67bdb 458 ADMW_MEASUREMENT_MODE const eMeasurementMode,
Vkadaba 5:0728bde67bdb 459 ADMW1001_OPERATING_MODE * const peOperatingMode,
Vkadaba 5:0728bde67bdb 460 ADMW1001_DATAREADY_MODE * const peDataReadyMode,
Vkadaba 5:0728bde67bdb 461 uint32_t * const pnSamplesPerDataready,
Vkadaba 5:0728bde67bdb 462 uint32_t * const pnSamplesPerCycle,
Vkadaba 5:0728bde67bdb 463 uint8_t * const pnBytesPerSample);
Vkadaba 5:0728bde67bdb 464
Vkadaba 5:0728bde67bdb 465 #ifdef __cplusplus
Vkadaba 5:0728bde67bdb 466 }
Vkadaba 5:0728bde67bdb 467 #endif
Vkadaba 5:0728bde67bdb 468
Vkadaba 5:0728bde67bdb 469 /*!
Vkadaba 5:0728bde67bdb 470 * @}
Vkadaba 5:0728bde67bdb 471 */
Vkadaba 5:0728bde67bdb 472
Vkadaba 5:0728bde67bdb 473 #endif /* __ADMW1001_API_H__ */
Vkadaba 5:0728bde67bdb 474