Loading...
Searching...
No Matches
sdp3x.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2019 Dirk Ehmen
3 * 2020 Nishchay Agrawal
4 *
5 * This file is subject to the terms and conditions of the GNU Lesser
6 * General Public License v2.1. See the file LICENSE in the top level
7 * directory for more details.
8 */
9
10#pragma once
11
23
24#include "saul.h"
25#include "xtimer.h"
26#include "mutex.h"
27#include "periph/i2c.h"
28#include "periph/gpio.h"
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
38#define SDP3X_FLAG_MASS_FLOW 0x02
39#define SDP3X_FLAG_DIFF_PRESS 0x00
40#define SDP3X_FLAG_AVERAGE 0x01
41#define SDP3X_FLAG_NO_AVERAGE 0x00
43
47typedef struct {
49 uint8_t i2c_addr;
50 gpio_t irq_pin;
52
61
65typedef struct {
68 int32_t temperature;
70
74enum {
80};
81
90int sdp3x_init(sdp3x_t *dev, const sdp3x_params_t *params);
91
102int8_t sdp3x_start_continuous(sdp3x_t *dev, uint8_t flags);
103
112
114
125int32_t sdp3x_read_single_temperature(sdp3x_t *dev, uint8_t flags);
126
137 uint8_t flags);
138
149int8_t sdp3x_read_single_measurement(sdp3x_t *dev, uint8_t flags,
150 sdp3x_measurement_t *result);
151
162int8_t sdp3x_stop_continuous(sdp3x_t *dev, xtimer_t *continuous_timer);
163
171int8_t sdp3x_soft_reset(const sdp3x_t *dev);
172
182int8_t sdp3x_enter_sleep(const sdp3x_t *dev);
183
191int8_t sdp3x_exit_sleep(const sdp3x_t *dev);
192
193#ifdef __cplusplus
194}
195#endif
Definition of the generic [S]ensor [A]ctuator [U]ber [L]ayer.
Low-level GPIO peripheral driver interface definitions.
uint_fast8_t i2c_t
Default i2c_t type definition.
Definition i2c.h:144
struct xtimer xtimer_t
xtimer timer structure
Low-level I2C peripheral driver interface definition.
Mutex for thread synchronization.
int8_t sdp3x_read_continuous(sdp3x_measurement_t *result, sdp3x_t *dev)
read temperature and differential pressure
int32_t sdp3x_read_single_differential_pressure(sdp3x_t *dev, uint8_t flags)
Read current differential_pressure value.
int sdp3x_init(sdp3x_t *dev, const sdp3x_params_t *params)
Initialize SDP3x.
int8_t sdp3x_soft_reset(const sdp3x_t *dev)
Resets all I2C devices.
int32_t sdp3x_read_single_temperature(sdp3x_t *dev, uint8_t flags)
Read current temperature value.
int8_t sdp3x_stop_continuous(sdp3x_t *dev, xtimer_t *continuous_timer)
Stop Continuous Measuring.
@ SDP3x_WRONGSIZE
Wrong size of array for method.
Definition sdp3x.h:79
@ SDP3x_NODATA
No Data available.
Definition sdp3x.h:77
@ SDP3x_OK
all went as expected
Definition sdp3x.h:75
@ SDP3x_IOERROR
I/O error.
Definition sdp3x.h:78
@ SDP3x_CRCERROR
CRC-Check failed.
Definition sdp3x.h:76
int8_t sdp3x_exit_sleep(const sdp3x_t *dev)
Exit sleep mode.
int8_t sdp3x_read_single_measurement(sdp3x_t *dev, uint8_t flags, sdp3x_measurement_t *result)
read temperature and differential pressure
int8_t sdp3x_enter_sleep(const sdp3x_t *dev)
Activates sleep mode.
int8_t sdp3x_start_continuous(sdp3x_t *dev, uint8_t flags)
Start Continuous Measuring.
Mutex structure.
Definition mutex.h:39
Measurement from SDP3x sensor.
Definition sdp3x.h:65
int32_t temperature
Temperature measured in centi°C.
Definition sdp3x.h:68
int32_t differential_pressure
Differential Pressure measured in centiPa.
Definition sdp3x.h:66
Device initialization parameters.
Definition sdp3x.h:47
gpio_t irq_pin
IRQ pin to check data ready.
Definition sdp3x.h:50
uint8_t i2c_addr
I2C address.
Definition sdp3x.h:49
i2c_t i2c_dev
I2C device which is used.
Definition sdp3x.h:48
Device descriptor for the SDP3x sensor.
Definition sdp3x.h:56
mutex_t mutex
Mutex for this sdp3x dev.
Definition sdp3x.h:59
bool continuous_measurement
Device measuring data continuously.
Definition sdp3x.h:57
sdp3x_params_t params
Device initialization parameters.
Definition sdp3x.h:58
xtimer interface definitions