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.
Diff: main.cpp
- Revision:
- 15:78f3f517417f
- Parent:
- 14:81f059dc75d0
- Child:
- 23:2adb6216b001
diff -r 81f059dc75d0 -r 78f3f517417f main.cpp
--- a/main.cpp Tue Nov 28 11:22:24 2017 +0000
+++ b/main.cpp Tue Dec 05 19:07:05 2017 +0000
@@ -1,164 +1,164 @@
-/*
- ******************************************************************************
- * file: main.cpp
- *-----------------------------------------------------------------------------
- *
-Copyright (c) 2017 Emutex Ltd. / 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 "mbed.h"
-#include "inc/adi_sense_api.h"
-#include "inc/adi_sense_1000/adi_sense_1000_api.h"
-#include "inc/adi_sense_log.h"
-#include "common/utils.h"
-
-extern ADI_SENSE_CONFIG sensor0_rtd_2w_pt100_config;
-extern ADI_SENSE_CONFIG sensor0_rtd_2w_pt100_unity_lut_config;
-extern ADI_SENSE_CONFIG sensor1_typeK_cjc1_config;
-extern ADI_SENSE_CONFIG sensor1_rtd_3w_pt100_config;
-extern ADI_SENSE_CONFIG sensor2_typeT_cjc0_config;
-extern ADI_SENSE_CONFIG sensor2_bridge_6w_pressure_config;
-extern ADI_SENSE_CONFIG sensor3_typeJ_cjc0_config;
-extern ADI_SENSE_CONFIG sensor3_thermistor_10k_ntc_config;
-extern ADI_SENSE_CONFIG voltage_honeywellPressure_config;
-extern ADI_SENSE_CONFIG current_honeywellPressure_config;
-extern ADI_SENSE_CONFIG i2c0_honeywellHumidicon_config;
-extern ADI_SENSE_CONFIG i2c0_sensirionSHT3X_config;
-extern ADI_SENSE_CONFIG spi0_honeywellTrustability_config;
-extern ADI_SENSE_CONFIG spi0_adiAdxl362_config;
-extern ADI_SENSE_CONFIG multichannel_continuous_config;
-extern ADI_SENSE_CONFIG multichannel_multicycle_config;
-extern ADI_SENSE_CONFIG multichannel_singlecycle_config;
-
-/* Change the following pointer to select any of the configurations above */
-static ADI_SENSE_CONFIG *pSelectedConfig = &sensor0_rtd_2w_pt100_config;
+/*
+ ******************************************************************************
+ * file: main.cpp
+ *-----------------------------------------------------------------------------
+ *
+Copyright (c) 2017 Emutex Ltd. / 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 "mbed.h"
+#include "inc/adi_sense_api.h"
+#include "inc/adi_sense_1000/adi_sense_1000_api.h"
+#include "inc/adi_sense_log.h"
+#include "common/utils.h"
+
+extern ADI_SENSE_CONFIG sensor0_rtd_2w_pt100_config;
+extern ADI_SENSE_CONFIG sensor1_typeK_cjc1_config;
+extern ADI_SENSE_CONFIG sensor1_rtd_3w_pt100_config;
+extern ADI_SENSE_CONFIG sensor2_typeT_cjc0_config;
+extern ADI_SENSE_CONFIG sensor2_bridge_6w_pressure_config;
+extern ADI_SENSE_CONFIG sensor3_typeJ_cjc0_config;
+extern ADI_SENSE_CONFIG sensor3_thermistor_10k_ntc_config;
+extern ADI_SENSE_CONFIG voltage_honeywellPressure_config;
+extern ADI_SENSE_CONFIG current_honeywellPressure_config;
+extern ADI_SENSE_CONFIG i2c0_honeywellHumidicon_config;
+extern ADI_SENSE_CONFIG i2c0_sensirionSHT3X_config;
+extern ADI_SENSE_CONFIG spi0_honeywellTrustability_config;
+extern ADI_SENSE_CONFIG spi0_adiAdxl362_config;
+extern ADI_SENSE_CONFIG multichannel_continuous_config;
+extern ADI_SENSE_CONFIG multichannel_multicycle_config;
+extern ADI_SENSE_CONFIG multichannel_singlecycle_config;
+
+/* Change the following pointer to select any of the configurations above */
+static ADI_SENSE_CONFIG *pSelectedConfig = &sensor0_rtd_2w_pt100_config;
+
+static ADI_SENSE_CONNECTION connectionInfo = {
+ .type = ADI_SENSE_CONNECTION_TYPE_SPI,
+ .spi = {
+ .mosiPin = SPI_MOSI,
+ .misoPin = SPI_MISO,
+ .sckPin = SPI_SCK,
+ .csPin = D10,
+ .maxSpeedHz = 2000000,
+ },
+ .gpio = {
+ .resetPin = D6,
+ .errorPin = D3,
+ .alertPin = D4,
+ .datareadyPin = D5,
+ },
+};
+
+int main()
+{
+ ADI_SENSE_RESULT res;
+ ADI_SENSE_DEVICE_HANDLE hDevice;
+ ADI_SENSE_MEASUREMENT_MODE eMeasurementMode = ADI_SENSE_MEASUREMENT_MODE_NORMAL;
+ bool_t bDeviceReady;
+
+ /*
+ * Open an ADI Sense device instance.
+ */
+ res = adi_sense_Open(0, &connectionInfo, &hDevice);
+ if (res != ADI_SENSE_SUCCESS)
+ {
+ ADI_SENSE_LOG_ERROR("Failed to open device instance");
+ return res;
+ }
+
+ /*
+ * Reset the given ADI Sense device....
+ */
+ ADI_SENSE_LOG_INFO("Resetting ADI Sense device, please wait...");
+ res = adi_sense_Reset(hDevice);
+ if (res != ADI_SENSE_SUCCESS)
+ {
+ ADI_SENSE_LOG_ERROR("Failed to reset device");
+ return res;
+ }
+ /*
+ * ...and wait until the device is ready.
+ */
+ do {
+ wait_ms(100);
+ res = adi_sense_GetDeviceReadyState(hDevice, &bDeviceReady);
+ if (res != ADI_SENSE_SUCCESS)
+ {
+ ADI_SENSE_LOG_ERROR("Failed to get device ready-state");
+ return res;
+ }
+ } while (! bDeviceReady);
+ ADI_SENSE_LOG_INFO("ADI Sense device ready");
+
+ /*
+ * Write configuration settings to the device registers.
+ * Settings are not applied until adi_sense_ApplyConfigUpdates() is called.
+ */
+ ADI_SENSE_LOG_INFO("Setting device configuration");
+ res = adi_sense_SetConfig(hDevice, pSelectedConfig);
+ if (res != ADI_SENSE_SUCCESS)
+ {
+ ADI_SENSE_LOG_ERROR("Failed to set device configuration");
+ return res;
+ }
+ res = adi_sense_ApplyConfigUpdates(hDevice);
+ if (res != ADI_SENSE_SUCCESS)
+ {
+ ADI_SENSE_LOG_ERROR("Failed to apply device configuration");
+ return res;
+ }
+
+ /*
+ * Kick off the measurement cycle here
+ */
+ ADI_SENSE_LOG_INFO("Configuration completed, starting measurement cycles");
+ utils_runMeasurement(hDevice, eMeasurementMode);
+
+ /*
+ * Clean up and exit
+ */
+ res = adi_sense_Close(hDevice);
+ if (res != ADI_SENSE_SUCCESS)
+ {
+ ADI_SENSE_LOG_ERROR("Failed to close device instance");
+ return res;
+ }
+
+ return 0;
+}
-static ADI_SENSE_CONNECTION connectionInfo = {
- .type = ADI_SENSE_CONNECTION_TYPE_SPI,
- .spi = {
- .mosiPin = SPI_MOSI,
- .misoPin = SPI_MISO,
- .sckPin = SPI_SCK,
- .csPin = D10,
- .maxSpeedHz = 2000000,
- },
- .gpio = {
- .resetPin = D6,
- .errorPin = D3,
- .alertPin = D4,
- .datareadyPin = D5,
- },
-};
-
-int main()
-{
- ADI_SENSE_RESULT res;
- ADI_SENSE_DEVICE_HANDLE hDevice;
- bool_t bHealthCheckMode = false;
- bool_t bDeviceReady;
-
- /*
- * Open an ADI Sense device instance.
- */
- res = adi_sense_Open(0, &connectionInfo, &hDevice);
- if (res != ADI_SENSE_SUCCESS)
- {
- ADI_SENSE_LOG_ERROR("Failed to open device instance");
- return res;
- }
-
- /*
- * Reset the given ADI Sense device....
- */
- ADI_SENSE_LOG_INFO("Resetting ADI Sense device, please wait...");
- res = adi_sense_Reset(hDevice);
- if (res != ADI_SENSE_SUCCESS)
- {
- ADI_SENSE_LOG_ERROR("Failed to reset device");
- return res;
- }
- /*
- * ...and wait until the device is ready.
- */
- do {
- wait_ms(100);
- res = adi_sense_GetDeviceReadyState(hDevice, &bDeviceReady);
- if (res != ADI_SENSE_SUCCESS)
- {
- ADI_SENSE_LOG_ERROR("Failed to get device ready-state");
- return res;
- }
- } while (! bDeviceReady);
- ADI_SENSE_LOG_INFO("ADI Sense device ready");
-
- /*
- * Write configuration settings to the device registers.
- * Settings are not applied until adi_sense_ApplyConfigUpdates() is called.
- */
- ADI_SENSE_LOG_INFO("Setting device configuration");
- res = adi_sense_SetConfig(hDevice, pSelectedConfig);
- if (res != ADI_SENSE_SUCCESS)
- {
- ADI_SENSE_LOG_ERROR("Failed to set device configuration");
- return res;
- }
- res = adi_sense_ApplyConfigUpdates(hDevice);
- if (res != ADI_SENSE_SUCCESS)
- {
- ADI_SENSE_LOG_ERROR("Failed to apply device configuration");
- return res;
- }
-
- /*
- * Kick off the measurement cycle here
- */
- ADI_SENSE_LOG_INFO("Configuration completed, starting measurement cycles");
- utils_runMeasurement(hDevice, bHealthCheckMode);
-
- /*
- * Clean up and exit
- */
- res = adi_sense_Close(hDevice);
- if (res != ADI_SENSE_SUCCESS)
- {
- ADI_SENSE_LOG_ERROR("Failed to close device instance");
- return res;
- }
-
- return 0;
-}