RocketLogger 2.1.1
sensor.h
Go to the documentation of this file.
1
32#ifndef SENSOR_SENSOR_H_
33#define SENSOR_SENSOR_H_
34
35#include <stdbool.h>
36#include <stdint.h>
37
38#include "../rl_file.h"
39
40#define MAX_MESSAGE_LENGTH 1000
41
42#ifndef I2C_BUS_FILENAME
43#define I2C_BUS_FILENAME "/dev/i2c-2"
44#endif
45
47#define SENSOR_REGISTRY_SIZE 5
48
49#define SENSOR_NAME_LENGTH (RL_FILE_CHANNEL_NAME_LENGTH)
50
54struct rl_sensor {
59 int32_t scale;
60 int (*init)(int);
61 void (*deinit)(int);
62 int (*read)(int);
63 int32_t (*get_value)(int, int);
64};
65
69typedef struct rl_sensor rl_sensor_t;
70
78
84int sensors_init(void);
85
89void sensors_deinit(void);
90
96int sensors_open_bus(void);
97
104int sensors_close_bus(int bus);
105
111int sensors_get_bus(void);
112
119int sensors_init_comm(uint8_t device_address);
120
127int sensors_scan(bool sensor_available[SENSOR_REGISTRY_SIZE]);
128
137int sensors_read(int32_t *const sensor_data,
138 bool const sensor_available[SENSOR_REGISTRY_SIZE]);
139
145void sensors_close(bool const sensor_available[SENSOR_REGISTRY_SIZE]);
146
147#endif /* SENSOR_SENSOR_H_ */
enum rl_unit rl_unit_t
Definition rl_file.h:102
int sensors_open_bus(void)
Definition sensor.c:132
int sensors_scan(bool sensor_available[SENSOR_REGISTRY_SIZE])
Definition sensor.c:156
int sensors_init(void)
Definition sensor.c:121
int sensors_close_bus(int bus)
Definition sensor.c:141
#define SENSOR_REGISTRY_SIZE
Number of sensor registered.
Definition sensor.h:47
#define SENSOR_NAME_LENGTH
Definition sensor.h:49
const rl_sensor_t SENSOR_REGISTRY[SENSOR_REGISTRY_SIZE]
Definition sensor.c:63
int sensors_get_bus(void)
Definition sensor.c:150
void sensors_close(bool const sensor_available[SENSOR_REGISTRY_SIZE])
Definition sensor.c:222
void sensors_deinit(void)
Definition sensor.c:126
int sensors_init_comm(uint8_t device_address)
Definition sensor.c:152
int sensors_read(int32_t *const sensor_data, bool const sensor_available[SENSOR_REGISTRY_SIZE])
Definition sensor.c:198
int(* read)(int)
Definition sensor.h:62
int32_t scale
Definition sensor.h:59
int identifier
Definition sensor.h:56
int channel
Definition sensor.h:57
int32_t(* get_value)(int, int)
Definition sensor.h:63
void(* deinit)(int)
Definition sensor.h:61
rl_unit_t unit
Definition sensor.h:58
int(* init)(int)
Definition sensor.h:60
char name[SENSOR_NAME_LENGTH]
Definition sensor.h:55