Definition of the generic [S]ensor [A]ctuator [U]ber [L]ayer. More...
Definition of the generic [S]ensor [A]ctuator [U]ber [L]ayer.
Definition in file saul.h.
Go to the source code of this file.
Data Structures | |
struct | saul_driver_t |
Definition of the RIOT actuator/sensor interface. More... | |
Typedefs | |
typedef int(* | saul_read_t) (const void *dev, phydat_t *res) |
Read a value (a set of values) from a device. | |
typedef int(* | saul_write_t) (const void *dev, const phydat_t *data) |
Write a value (a set of values) to a device. | |
Functions | |
void | saul_init_devs (void) |
Initialize all available SAUL drivers. | |
int | saul_write_notsup (const void *dev, const phydat_t *dat) |
Fallback function when write is not supported. | |
int | saul_read_notsup (const void *dev, phydat_t *dat) |
Fallback function when read is not supported. | |
const char * | saul_class_to_str (const uint8_t class_id) |
Helper function converts a class ID to a string. | |
void | saul_class_print (uint8_t class_id) |
Prints the class string of the given class ID. | |
ssize_t | saul_class_write (char *dest, size_t max_size, uint8_t class_id) |
Write the string representation of the given device class to the given buffer. | |
Definition of device classes | |
This list contains a collections of available device classes. Each device must be part of one, but can be part of multiple of these classes. When belonging to more than one class, a device must however expose one driver for each class it belongs to, and it has to register each driver with a separate entry at the SAUL registry. Classes are identified by 8-bit unsigned integers. For searching and filtering purposes, the device classes are further split into top-level categories: sensors and actuators. For identification, the two most significant bits of a class specify the device category (SAUL category ID) and the six least significant bits identify the class within its category (SAUL intra-category ID): Therefore, all actuator classes start with 0b01xxxxxx, all sensor classes start with 0b10xxxxxx. This list is not exhaustive, extend to your needs! | |
enum | { SAUL_CAT_UNDEF = 0x00 , SAUL_CAT_ACT = 0x40 , SAUL_CAT_SENSE = 0x80 } |
Definition of SAUL categories. More... | |
enum | { SAUL_ACT_ID_ANY , SAUL_ACT_ID_LED_RGB , SAUL_ACT_ID_SERVO , SAUL_ACT_ID_MOTOR , SAUL_ACT_ID_SWITCH , SAUL_ACT_ID_DIMMER , SAUL_ACT_NUMOF } |
Definition of actuator intra-category IDs. More... | |
enum | { SAUL_SENSE_ID_ANY , SAUL_SENSE_ID_BTN , SAUL_SENSE_ID_TEMP , SAUL_SENSE_ID_HUM , SAUL_SENSE_ID_LIGHT , SAUL_SENSE_ID_ACCEL , SAUL_SENSE_ID_MAG , SAUL_SENSE_ID_GYRO , SAUL_SENSE_ID_COLOR , SAUL_SENSE_ID_PRESS , SAUL_SENSE_ID_ANALOG , SAUL_SENSE_ID_UV , SAUL_SENSE_ID_OBJTEMP , SAUL_SENSE_ID_COUNT , SAUL_SENSE_ID_DISTANCE , SAUL_SENSE_ID_CO2 , SAUL_SENSE_ID_TVOC , SAUL_SENSE_ID_GAS , SAUL_SENSE_ID_OCCUP , SAUL_SENSE_ID_PROXIMITY , SAUL_SENSE_ID_RSSI , SAUL_SENSE_ID_CHARGE , SAUL_SENSE_ID_CURRENT , SAUL_SENSE_ID_PM , SAUL_SENSE_ID_CAPACITANCE , SAUL_SENSE_ID_VOLTAGE , SAUL_SENSE_ID_PH , SAUL_SENSE_ID_POWER , SAUL_SENSE_ID_SIZE , SAUL_SENSE_NUMOF } |
Definition of sensor intra-category IDs. More... | |
enum | { SAUL_ACT_ANY = SAUL_CAT_ACT | SAUL_ACT_ID_ANY , SAUL_ACT_LED_RGB = SAUL_CAT_ACT | SAUL_ACT_ID_LED_RGB , SAUL_ACT_SERVO = SAUL_CAT_ACT | SAUL_ACT_ID_SERVO , SAUL_ACT_MOTOR = SAUL_CAT_ACT | SAUL_ACT_ID_MOTOR , SAUL_ACT_SWITCH = SAUL_CAT_ACT | SAUL_ACT_ID_SWITCH , SAUL_ACT_DIMMER = SAUL_CAT_ACT | SAUL_ACT_ID_DIMMER , SAUL_SENSE_ANY = SAUL_CAT_SENSE | SAUL_SENSE_ID_ANY , SAUL_SENSE_BTN = SAUL_CAT_SENSE | SAUL_SENSE_ID_BTN , SAUL_SENSE_TEMP = SAUL_CAT_SENSE | SAUL_SENSE_ID_TEMP , SAUL_SENSE_HUM = SAUL_CAT_SENSE | SAUL_SENSE_ID_HUM , SAUL_SENSE_LIGHT = SAUL_CAT_SENSE | SAUL_SENSE_ID_LIGHT , SAUL_SENSE_ACCEL = SAUL_CAT_SENSE | SAUL_SENSE_ID_ACCEL , SAUL_SENSE_MAG = SAUL_CAT_SENSE | SAUL_SENSE_ID_MAG , SAUL_SENSE_GYRO = SAUL_CAT_SENSE | SAUL_SENSE_ID_GYRO , SAUL_SENSE_COLOR = SAUL_CAT_SENSE | SAUL_SENSE_ID_COLOR , SAUL_SENSE_PRESS = SAUL_CAT_SENSE | SAUL_SENSE_ID_PRESS , SAUL_SENSE_ANALOG = SAUL_CAT_SENSE | SAUL_SENSE_ID_ANALOG , SAUL_SENSE_UV = SAUL_CAT_SENSE | SAUL_SENSE_ID_UV , SAUL_SENSE_OBJTEMP = SAUL_CAT_SENSE | SAUL_SENSE_ID_OBJTEMP , SAUL_SENSE_COUNT = SAUL_CAT_SENSE | SAUL_SENSE_ID_COUNT , SAUL_SENSE_DISTANCE = SAUL_CAT_SENSE | SAUL_SENSE_ID_DISTANCE , SAUL_SENSE_CO2 = SAUL_CAT_SENSE | SAUL_SENSE_ID_CO2 , SAUL_SENSE_TVOC = SAUL_CAT_SENSE | SAUL_SENSE_ID_TVOC , SAUL_SENSE_GAS = SAUL_CAT_SENSE | SAUL_SENSE_ID_GAS , SAUL_SENSE_OCCUP = SAUL_CAT_SENSE | SAUL_SENSE_ID_OCCUP , SAUL_SENSE_PROXIMITY = SAUL_CAT_SENSE | SAUL_SENSE_ID_PROXIMITY , SAUL_SENSE_RSSI = SAUL_CAT_SENSE | SAUL_SENSE_ID_RSSI , SAUL_SENSE_CHARGE = SAUL_CAT_SENSE | SAUL_SENSE_ID_CHARGE , SAUL_SENSE_CURRENT = SAUL_CAT_SENSE | SAUL_SENSE_ID_CURRENT , SAUL_SENSE_PM = SAUL_CAT_SENSE | SAUL_SENSE_ID_PM , SAUL_SENSE_CAPACITANCE = SAUL_CAT_SENSE | SAUL_SENSE_ID_CAPACITANCE , SAUL_SENSE_VOLTAGE = SAUL_CAT_SENSE | SAUL_SENSE_ID_VOLTAGE , SAUL_SENSE_PH = SAUL_CAT_SENSE | SAUL_SENSE_ID_PH , SAUL_SENSE_POWER = SAUL_CAT_SENSE | SAUL_SENSE_ID_POWER , SAUL_SENSE_SIZE = SAUL_CAT_SENSE | SAUL_SENSE_ID_SIZE , SAUL_CLASS_ANY = 0xff } |
Definition of SAUL actuator and sensor classes. More... | |
enum | { SAUL_CAT_MASK = 0xc0 , SAUL_ID_MASK = 0x3f } |
Bitmask to retrieve the class ID and intra-category ID from a SAUL class. More... | |