saul.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 Freie Universit├Ąt Berlin
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
44 #ifndef SAUL_H
45 #define SAUL_H
46 
47 #include <stdint.h>
48 #include <errno.h>
49 
50 #include "phydat.h"
51 
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55 
84 enum {
85  SAUL_CAT_UNDEF = 0x00,
86  SAUL_CAT_ACT = 0x40,
87  SAUL_CAT_SENSE = 0x80,
88 };
89 
93 enum {
101  /* Extend this list as needed, but keep SAUL_ACT_ID_ANY the first and
102  * SAUL_ACT_NUMOF the last entry
103  */
104 };
105 
109 enum {
140  /* Extend this list as needed, but keep SAUL_SENSE_ID_ANY the first and
141  * SAUL_SENSE_NUMOF the last entry
142  */
143 };
144 
151 enum {
224  /* extend this list as needed... */
225 };
226 
231 enum {
232  SAUL_CAT_MASK = 0xc0,
233  SAUL_ID_MASK = 0x3f,
234 };
254 typedef int(*saul_read_t)(const void *dev, phydat_t *res);
255 
274 typedef int(*saul_write_t)(const void *dev, phydat_t *data);
275 
279 typedef struct {
282  uint8_t type;
283 } saul_driver_t;
284 
293 void saul_init_devs(void);
294 
298 int saul_notsup(const void *dev, phydat_t *dat);
299 
308 const char *saul_class_to_str(const uint8_t class_id);
309 
310 #ifdef __cplusplus
311 }
312 #endif
313 
314 #endif /* SAUL_H */
315 
any sensor - wildcard
Definition: saul.h:110
sensor: pH
Definition: saul.h:217
sensor: gyroscope
Definition: saul.h:179
any actuator - wildcard
Definition: saul.h:94
Sensor device class.
Definition: saul.h:87
sensor: UV index
Definition: saul.h:187
Bitmask to obtain the category ID.
Definition: saul.h:232
sensor: distance
Definition: saul.h:124
sensor: proximity
Definition: saul.h:203
sensor: capacitance
Definition: saul.h:134
actuator: simple on/off switch
Definition: saul.h:161
sensor: accelerometer
Definition: saul.h:115
sensor: particulate matter
Definition: saul.h:133
sensor: capacitance
Definition: saul.h:213
sensor: occupancy
Definition: saul.h:201
int(* saul_write_t)(const void *dev, phydat_t *data)
Write a value (a set of values) to a device.
Definition: saul.h:274
sensor: particulate matter
Definition: saul.h:211
sensor: power
Definition: saul.h:137
int(* saul_read_t)(const void *dev, phydat_t *res)
Read a value (a set of values) from a device.
Definition: saul.h:254
Generic data container for physical data interface.
Number of actuators supported.
Definition: saul.h:100
sensor: CO2 Gas
Definition: saul.h:125
actuator: RGB LED
Definition: saul.h:155
sensor: accelerometer
Definition: saul.h:175
sensor: UV index
Definition: saul.h:121
const char * saul_class_to_str(const uint8_t class_id)
Helper function converts a class ID to a string.
sensor: ammeter
Definition: saul.h:132
actuator: dimmable switch
Definition: saul.h:99
Definition of the RIOT actuator/sensor interface.
Definition: saul.h:279
sensor: (light) color
Definition: saul.h:118
sensor: proximity
Definition: saul.h:129
sensor: temperature
Definition: saul.h:169
sensor: gyroscope
Definition: saul.h:117
Bitmask to obtain the intra-category ID.
Definition: saul.h:233
sensor: simple button
Definition: saul.h:167
sensor: light
Definition: saul.h:114
sensor: raw analog value
Definition: saul.h:185
any sensor - wildcard
Definition: saul.h:165
sensor: RSSI
Definition: saul.h:205
Generic data structure for expressing physical values.
Definition: phydat.h:149
sensor: size
Definition: saul.h:138
saul_write_t write
write function pointer
Definition: saul.h:281
any device - wildcard
Definition: saul.h:223
sensor: humidity
Definition: saul.h:171
sensor: pulse counter
Definition: saul.h:123
sensor: Gas common
Definition: saul.h:127
sensor: coulomb counter
Definition: saul.h:207
actuator: servo motor
Definition: saul.h:157
sensor: magnetometer
Definition: saul.h:116
actuator: motor
Definition: saul.h:97
int saul_notsup(const void *dev, phydat_t *dat)
Default not supported function.
sensor: occupancy
Definition: saul.h:128
device class undefined
Definition: saul.h:85
actuator: dimmable switch
Definition: saul.h:163
sensor: humidity
Definition: saul.h:113
sensor: pulse counter
Definition: saul.h:191
actuator: motor
Definition: saul.h:159
actuator: simple on/off switch
Definition: saul.h:98
sensor: temperature
Definition: saul.h:112
sensor: voltage
Definition: saul.h:215
sensor: raw analog value
Definition: saul.h:120
sensor: RSSI
Definition: saul.h:130
sensor: ammeter
Definition: saul.h:209
any actuator - wildcard
Definition: saul.h:153
sensor: Gas common
Definition: saul.h:199
sensor: pH
Definition: saul.h:136
sensor: CO2 Gas
Definition: saul.h:195
actuator: servo motor
Definition: saul.h:96
actuator: RGB LED
Definition: saul.h:95
sensor: TVOC Gas
Definition: saul.h:126
Number of actuators supported.
Definition: saul.h:139
sensor: coulomb counter
Definition: saul.h:131
sensor: (light) color
Definition: saul.h:181
sensor: object temperature
Definition: saul.h:122
sensor: pressure
Definition: saul.h:183
uint8_t type
device class the device belongs to
Definition: saul.h:282
sensor: distance
Definition: saul.h:193
sensor: voltage
Definition: saul.h:135
sensor: TVOC Gas
Definition: saul.h:197
sensor: power
Definition: saul.h:219
sensor: object temperature
Definition: saul.h:189
sensor: magnetometer
Definition: saul.h:177
sensor: simple button
Definition: saul.h:111
void saul_init_devs(void)
Initialize all available SAUL drivers.
sensor: light
Definition: saul.h:173
sensor: size
Definition: saul.h:221
Actuator device class.
Definition: saul.h:86
sensor: pressure
Definition: saul.h:119
saul_read_t read
read function pointer
Definition: saul.h:280