Host API Example for the ADMW1001

Revision:
17:2f0028880874
Child:
19:09d58952b65d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/config.c	Wed Aug 07 06:46:25 2019 +0000
@@ -0,0 +1,274 @@
+/*!
+
+ ******************************************************************************
+
+ * @file:   config.c
+
+ * @brief:
+
+ *-----------------------------------------------------------------------------
+
+ *
+
+Copyright (c) 2018 Analog Devices, Inc.
+
+
+
+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.
+
+  - Modified versions of the software must be conspicuously marked as such.
+
+  - This software is licensed solely and exclusively for use with processors
+
+    manufactured by or for Analog Devices, Inc.
+
+  - This software may not be combined or merged with other code in any manner
+
+    that would cause the software to become subject to terms and conditions
+
+    which differ from those listed here.
+
+  - Neither the name of Analog Devices, Inc. nor the names of its
+
+    contributors may be used to endorse or promote products derived
+
+    from this software without specific prior written permission.
+
+  - The use of this software may or may not infringe the patent rights of one
+
+    or more patent holders.  This license does not release you from the
+
+    requirement that you obtain separate licenses from these patent holders
+
+    to use this software.
+
+
+
+THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" AND ANY
+
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
+
+TITLE, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+
+NO EVENT SHALL ANALOG DEVICES, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES
+
+(INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF INTELLECTUAL
+
+PROPERTY RIGHTS INFRINGEMENT; 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.
+
+ *
+
+ *****************************************************************************/
+
+
+
+#include "inc/admw_config_types.h"
+
+
+
+ADMW_CONFIG config= {
+
+    .versionId = { .major = 2, .minor = 0 },
+
+    .productId = ADMW_PRODUCT_ID_ADMW1001,
+
+    .admw1001 = {
+
+            .power = {
+
+                .powerMode = ADMW1001_POWER_MODE_ACTIVE,
+
+            },
+
+            .measurement = {
+
+                .operatingMode = ADMW1001_OPERATING_MODE_CONTINUOUS,
+
+                .dataReadyMode = ADMW1001_DATAREADY_PER_CYCLE, // FIX: Temporarily all values from json are hardcoded to this one in the Contracts.FileGenerator - > file translations!!
+
+                .cycleInterval = 0,
+
+                .vBiasEnable = true,
+
+            },
+
+            .diagnostics = {
+
+                .disableGlobalDiag = true,
+
+                .disableMeasurementDiag = true,
+
+                .osdFrequency = ADMW1001_OPEN_SENSOR_DIAGNOSTICS_DISABLED,
+
+            },
+
+            .channels = {
+
+                [ADMW1001_CH_ID_ANLG_1_UNIVERSAL] = {
+
+                    .enableChannel = true,
+
+                    .disablePublishing = false,
+
+                    .compensationChannel = ADMW1001_CH_ID_NONE,
+
+                    .lutSelect = ADMW1001_LUT_DEFAULT,
+
+                    .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS,
+
+                    .lowThreshold = -50,
+
+                    .highThreshold = 250,
+
+                    .offsetAdjustment = 0.0,
+
+                    .gainAdjustment = 0.0,
+
+                    .sensorParameter = 0.0,
+
+                    .measurementsPerCycle = 1,
+
+                    .cycleSkipCount = 0,
+
+                    .extraSettlingTime = 0,
+
+                    .priority = 0,
+
+                    .adcChannelConfig = {
+
+                        .sensor = ADMW1001_ADC_SENSOR_RTD_2WIRE_PT100,
+
+                        .rtdCurve = ADMW1001_ADC_RTD_CURVE_EUROPEAN,
+
+                        .gain = ADMW1001_ADC_GAIN_2X,
+
+                        .current = {
+
+                            .excitationState= ADMW1001_ADC_EXC_STATE_ALWAYS_ON,
+
+                            .outputLevel = ADMW1001_ADC_EXC_CURRENT_250uA,
+
+                            .diodeRatio = 0,
+
+                        },
+
+                        .filter = {
+
+                            .type = ADMW1001_ADC_FILTER_SINC3,
+
+                            .sf = ADMW1001_SF_8P24HZ,
+
+                            .chopMode = ADMW1001_CHOP_MD_SW,
+
+                            .notch1p2 = false,
+
+                            .groundSwitch = ADMW1001_ADC_GND_SW_OPEN
+
+                        },
+
+                        .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL,
+
+                    },
+
+                },
+
+                [ADMW1001_CH_ID_ANLG_1_DIFFERENTIAL] = {
+
+                    .enableChannel = true,
+
+                    .disablePublishing = false,
+
+                    .compensationChannel = ADMW1001_CH_ID_ANLG_1_UNIVERSAL,
+
+                    .lutSelect = ADMW1001_LUT_DEFAULT,
+
+                    .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS,
+
+                    .lowThreshold = -50,
+
+                    .highThreshold = 250,
+
+                    .offsetAdjustment = 0.0,
+
+                    .gainAdjustment = 0.0,
+
+                    .sensorParameter = 0.0,
+
+                    .measurementsPerCycle = 1,
+
+                    .cycleSkipCount = 0,
+
+                    .extraSettlingTime = 4499.99986449257,
+
+                    .priority = 0,
+
+                    .adcChannelConfig = {
+
+                        .sensor = ADMW1001_ADC_SENSOR_THERMOCOUPLE_K,
+
+                        .rtdCurve = ADMW1001_ADC_RTD_CURVE_EUROPEAN,
+
+                        .gain = 8,
+
+                        .current = {
+
+                            .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER,
+
+                            .outputLevel = ADMW1001_ADC_EXC_CURRENT_EXTERNAL,
+
+                            .diodeRatio = 0,
+
+                        },
+
+                        .filter = {
+
+                            .type = ADMW1001_ADC_FILTER_SINC3,
+
+                            .sf = ADMW1001_SF_8P24HZ,
+
+                            .chopMode = ADMW1001_CHOP_MD_SW,
+
+                            .notch1p2 = false,
+
+                            .groundSwitch = ADMW1001_ADC_GND_SW_OPEN
+
+                        },
+
+                        .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL,
+
+                    },
+
+                },
+
+            },
+
+    },
+
+};
+