IZAR Flight Controller 1.0.0
IZAR Flight Controller running with an ESP32.
ble_c.h
Go to the documentation of this file.
1#ifndef BLE_C_H
2#define BLE_C_H
3
4#include "esp_err.h"
5#include "esp_gatts_api.h"
8
9#include <stdint.h>
10
11#ifndef LO_UINT16
12#define LO_UINT16(a) ((uint8_t)((a) & 0xFF))
13#endif
14#ifndef HI_UINT16
15#define HI_UINT16(a) ((uint8_t)(((a) >> 8) & 0xFF))
16#endif
17
18
19#define GATTS_SERVICE_UUID 0x00FF // Service UUID
20#define GATTS_CHAR_UUID_ROCKET_STATUS 0xFF01 // Characteristic Rocket Status
21#define GATTS_CHAR_UUID_ROCKET_ALTITUDE 0xFF02 // Characteristic Rocket altitude
22#define GATTS_CHAR_UUID_ROCKET_SPEED 0xFF03 // Characteristic Rocket speed
23#define GATTS_CHAR_UUID_ROCKET_PRESSURE 0xFF04 // Characteristic Rocket pressure
24#define GATTS_CHAR_UUID_ROCKET_TEMPERATURE \
25 0xFF05 // Characteristic Rocket temperature
26#define GATTS_CHAR_UUID_ROCKET_ACC_X 0xFF06 // Characteristic Rocket acc x
27#define GATTS_CHAR_UUID_ROCKET_ACC_Y 0xFF07 // Characteristic Rocket acc y
28#define GATTS_CHAR_UUID_ROCKET_ACC_Z 0xFF08 // Characteristic Rocket acc z
29#define GATTS_CHAR_UUID_ROCKET_ROT_X 0xFF09 // Characteristic Rocket rot x
30#define GATTS_CHAR_UUID_ROCKET_ROT_Y 0xFF10 // Characteristic Rocket rot y
31#define GATTS_CHAR_UUID_ROCKET_ROT_Z 0xFF11 // Characteristic Rocket rot z
32
33#define GATTS_NUM_HANDLE 25
34
39extern int32_t rocket_pressure;
40
41#define TAG_BLE "BLE"
42
43
50esp_err_t ble_init(void);
51
59void ble_gatts_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if,
60 esp_ble_gatts_cb_param_t *param);
61
66void create_and_add_service(void);
67
72void crete_characteristics(void);
73
81esp_err_t ble_notify_float(float value, uint16_t char_handler);
82
90esp_err_t ble_notify_uint8(uint8_t value, uint16_t char_handler);
91
92// External functions for notifying new values.
99esp_err_t update_rocket_status(int value);
100
107esp_err_t update_rocket_altitude(float value);
108
115esp_err_t update_rocket_speed(float value);
116
123esp_err_t update_rocket_pressure(int32_t value);
124
131esp_err_t update_rocket_temperature(float value);
132
139esp_err_t update_rocket_acc_x(float value);
140
147esp_err_t update_rocket_acc_y(float value);
148
155esp_err_t update_rocket_acc_z(float value);
156
163esp_err_t update_rocket_rot_x(float value);
164
171esp_err_t update_rocket_rot_y(float value);
172
179esp_err_t update_rocket_rot_z(float value);
180
181#endif // BLE_C_H
esp_err_t update_rocket_acc_x(float value)
Notify new X-axis linear acceleration.
Definition ble_c.c:420
esp_err_t update_rocket_pressure(int32_t value)
Notify pressure over BLE.
Definition ble_c.c:412
esp_err_t ble_notify_uint8(uint8_t value, uint16_t char_handler)
Notify a uint8_t value.
Definition ble_c.c:456
void ble_gatts_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param)
Callback function for GATT services.
Definition ble_c.c:85
esp_err_t update_rocket_rot_y(float value)
Notify new Y-axis angular acceleration.
Definition ble_c.c:436
esp_err_t update_rocket_rot_z(float value)
Notify new Z-axis angular acceleration.
Definition ble_c.c:440
esp_err_t ble_notify_float(float value, uint16_t char_handler)
Notify a float value.
Definition ble_c.c:444
esp_err_t update_rocket_rot_x(float value)
Notify new X-axis angular acceleration.
Definition ble_c.c:432
void create_and_add_service(void)
Create a and add service object.
Definition ble_c.c:287
void crete_characteristics(void)
Create the characteristic.
Definition ble_c.c:376
esp_err_t update_rocket_acc_z(float value)
Notify new Z-axis linear acceleration.
Definition ble_c.c:428
esp_err_t update_rocket_acc_y(float value)
Notify new Y-axis linear acceleration.
Definition ble_c.c:424
esp_err_t update_rocket_temperature(float value)
Notify temperature over BLE.
Definition ble_c.c:416
esp_err_t update_rocket_altitude(float value)
Notify altitude over BLE.
Definition ble_c.c:404
esp_err_t ble_init(void)
Initializes BLE application with all the needed drivers and components.
Definition ble_c.c:37
esp_err_t update_rocket_status(int value)
Notify rocket status over BLE.
Definition ble_c.c:400
esp_err_t update_rocket_speed(float value)
Notify speed over BLE.
Definition ble_c.c:408
float rocket_altitude
Definition sensors_reading.c:27
int32_t rocket_pressure
Definition sensors_reading.c:26
float rocket_temperature
Definition sensors_reading.c:27
mpu6050_acceleration_t rocket_accel
Definition sensors_reading.c:24
ROCKET_STATUS_T rocket_status
Definition sensors_reading.c:23
mpu6050_rotation_t rocket_rot
Definition sensors_reading.c:25
ROCKET_STATUS_T
Rocket flight status states.
Definition sensors_reading.h:36
Definition mpu6050.h:84
Definition mpu6050.h:94