RocketLogger  2.0.0
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 
54 struct rl_sensor {
57  int channel;
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 
69 typedef struct rl_sensor rl_sensor_t;
70 
78 
84 int sensors_init(void);
85 
89 void sensors_deinit(void);
90 
96 int sensors_open_bus(void);
97 
104 int sensors_close_bus(int bus);
105 
111 int sensors_get_bus(void);
112 
119 int sensors_init_comm(uint8_t device_address);
120 
127 int sensors_scan(bool sensor_available[SENSOR_REGISTRY_SIZE]);
128 
137 int sensors_read(int32_t *const sensor_data,
138  bool const sensor_available[SENSOR_REGISTRY_SIZE]);
139 
145 void 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:103
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