Several reviewers agreed that DT_HAS_NODE_STATUS_OKAY(...) was an undesirable API for the following reasons: - it's inconsistent with the rest of the DT_NODE_HAS_FOO names - DT_NODE_HAS_FOO_BAR_BAZ(node) was agreed upon as a shorthand for macros which are equivalent to DT_NODE_HAS_FOO(node) && DT_NODE_HAS_BAR(node) && - DT_NODE_HAS_BAZ(node), and DT_HAS_NODE_STATUS_OKAY is an odd duck - DT_NODE_HAS_STATUS(..., okay) was viewed as more readable anyway - it is seen as a somewhat aesthetically challenged name Replace all users with DT_NODE_HAS_STATUS(..., okay), which is semantically equivalent. This is mostly done with sed, but a few remaining cases were done by hand, along with whitespace, docs, and comment changes. These special cases include the Nordic SOC static assert files. Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
/*
|
|
* Copyright (c) 2012-2014 Wind River Systems, Inc.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <zephyr.h>
|
|
#include <device.h>
|
|
#include <devicetree.h>
|
|
#include <drivers/sensor.h>
|
|
|
|
#define BME280 DT_INST(0, bosch_bme280)
|
|
|
|
#if DT_NODE_HAS_STATUS(BME280, okay)
|
|
#define BME280_LABEL DT_LABEL(BME280)
|
|
#else
|
|
#error Your devicetree has no enabled nodes with compatible "bosch,bme280"
|
|
#define BME280_LABEL "<none>"
|
|
#endif
|
|
|
|
void main(void)
|
|
{
|
|
struct device *dev = device_get_binding(BME280_LABEL);
|
|
|
|
if (dev == NULL) {
|
|
printk("No device \"%s\" found; did initialization fail?\n",
|
|
BME280_LABEL);
|
|
return;
|
|
} else {
|
|
printk("Found device \"%s\"\n", BME280_LABEL);
|
|
}
|
|
|
|
while (1) {
|
|
struct sensor_value temp, press, humidity;
|
|
|
|
sensor_sample_fetch(dev);
|
|
sensor_channel_get(dev, SENSOR_CHAN_AMBIENT_TEMP, &temp);
|
|
sensor_channel_get(dev, SENSOR_CHAN_PRESS, &press);
|
|
sensor_channel_get(dev, SENSOR_CHAN_HUMIDITY, &humidity);
|
|
|
|
printk("temp: %d.%06d; press: %d.%06d; humidity: %d.%06d\n",
|
|
temp.val1, temp.val2, press.val1, press.val2,
|
|
humidity.val1, humidity.val2);
|
|
|
|
k_sleep(K_MSEC(1000));
|
|
}
|
|
}
|