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 
sensor: accelerometer
Definition: saul.h:115
sensor: capacitance
Definition: saul.h:134
actuator: motor
Definition: saul.h:159
sensor: raw analog value
Definition: saul.h:185
Number of actuators supported.
Definition: saul.h:139
actuator: motor
Definition: saul.h:97
sensor: capacitance
Definition: saul.h:213
sensor: proximity
Definition: saul.h:203
sensor: magnetometer
Definition: saul.h:177
sensor: coulomb counter
Definition: saul.h:207
actuator: servo motor
Definition: saul.h:96
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: size
Definition: saul.h:221
sensor: ammeter
Definition: saul.h:132
sensor: pressure
Definition: saul.h:119
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.
actuator: simple on/off switch
Definition: saul.h:98
sensor: pH
Definition: saul.h:217
sensor: raw analog value
Definition: saul.h:120
actuator: dimmable switch
Definition: saul.h:99
sensor: particulate matter
Definition: saul.h:133
sensor: temperature
Definition: saul.h:169
actuator: servo motor
Definition: saul.h:157
const char * saul_class_to_str(const uint8_t class_id)
Helper function converts a class ID to a string.
Bitmask to obtain the category ID.
Definition: saul.h:232
sensor: particulate matter
Definition: saul.h:211
Definition of the RIOT actuator/sensor interface.
Definition: saul.h:279
sensor: CO2 Gas
Definition: saul.h:125
sensor: Gas common
Definition: saul.h:199
sensor: TVOC Gas
Definition: saul.h:126
sensor: (light) color
Definition: saul.h:181
sensor: proximity
Definition: saul.h:129
sensor: RSSI
Definition: saul.h:205
sensor: light
Definition: saul.h:173
sensor: coulomb counter
Definition: saul.h:131
sensor: occupancy
Definition: saul.h:128
any actuator - wildcard
Definition: saul.h:94
device class undefined
Definition: saul.h:85
any sensor - wildcard
Definition: saul.h:110
sensor: gyroscope
Definition: saul.h:179
any sensor - wildcard
Definition: saul.h:165
any actuator - wildcard
Definition: saul.h:153
actuator: RGB LED
Definition: saul.h:155
Sensor device class.
Definition: saul.h:87
sensor: TVOC Gas
Definition: saul.h:197
Generic data structure for expressing physical values.
Definition: phydat.h:149
saul_write_t write
write function pointer
Definition: saul.h:281
sensor: voltage
Definition: saul.h:135
actuator: RGB LED
Definition: saul.h:95
sensor: power
Definition: saul.h:137
sensor: gyroscope
Definition: saul.h:117
int saul_notsup(const void *dev, phydat_t *dat)
Default not supported function.
sensor: distance
Definition: saul.h:124
sensor: pulse counter
Definition: saul.h:123
sensor: humidity
Definition: saul.h:171
sensor: occupancy
Definition: saul.h:201
sensor: CO2 Gas
Definition: saul.h:195
sensor: Gas common
Definition: saul.h:127
sensor: simple button
Definition: saul.h:111
actuator: dimmable switch
Definition: saul.h:163
sensor: ammeter
Definition: saul.h:209
sensor: object temperature
Definition: saul.h:122
sensor: (light) color
Definition: saul.h:118
sensor: distance
Definition: saul.h:193
sensor: object temperature
Definition: saul.h:189
sensor: magnetometer
Definition: saul.h:116
sensor: power
Definition: saul.h:219
sensor: temperature
Definition: saul.h:112
any device - wildcard
Definition: saul.h:223
sensor: light
Definition: saul.h:114
sensor: simple button
Definition: saul.h:167
sensor: size
Definition: saul.h:138
sensor: accelerometer
Definition: saul.h:175
sensor: pH
Definition: saul.h:136
Number of actuators supported.
Definition: saul.h:100
sensor: humidity
Definition: saul.h:113
uint8_t type
device class the device belongs to
Definition: saul.h:282
sensor: pulse counter
Definition: saul.h:191
Actuator device class.
Definition: saul.h:86
sensor: pressure
Definition: saul.h:183
sensor: voltage
Definition: saul.h:215
actuator: simple on/off switch
Definition: saul.h:161
sensor: RSSI
Definition: saul.h:130
void saul_init_devs(void)
Initialize all available SAUL drivers.
sensor: UV index
Definition: saul.h:121
sensor: UV index
Definition: saul.h:187
Bitmask to obtain the intra-category ID.
Definition: saul.h:233
saul_read_t read
read function pointer
Definition: saul.h:280