LoRa-BLE-Sensor
Loading...
Searching...
No Matches
sensor_app.h
Go to the documentation of this file.
1
15#ifndef SENSOR_APP_H
16#define SENSOR_APP_H
17
18#include "sensor_id.h"
19#include <stdint.h>
20
21#define SENSOR_VOLTAGE_NAME_LENGTH 20
22#define SENSOR_TYPE_NAME_LENGTH 20
23
29 SENSOR_APP_STATE_CONFIGURATION, // Device is in configuration mode (BLE active, waiting for setup)
30 SENSOR_APP_STATE_RUNNING, // Device is actively reading sensors and transmitting
31 SENSOR_APP_STATE_ERROR, // Error state
32};
33
39 SENSOR_NVS_ADDRESS_DEVICE_NAME,
40 SENSOR_NVS_ADDRESS_APP_STATE,
41 SENSOR_NVS_ADDRESS_LORAWAN_ENABLED,
42 SENSOR_NVS_ADDRESS_LORAWAN_FREQUENCY,
43 SENSOR_NVS_ADDRESS_LORAWAN_DEV_EUI,
44 SENSOR_NVS_ADDRESS_LORAWAN_JOIN_EUI,
45 SENSOR_NVS_ADDRESS_LORAWAN_APP_KEY,
46 SENSOR_NVS_ADDRESS_LORAWAN_DEV_NONCE,
47 SENSOR_NVS_ADDRESS_LORAWAN_JOIN_ATTEMPTS,
48 SENSOR_NVS_ADDRESS_LORAWAN_SEND_ATTEMPTS,
49 SENSOR_NVS_ADDRESS_SENSOR_1_ENABLED,
50 SENSOR_NVS_ADDRESS_SENSOR_1_POWER,
51 SENSOR_NVS_ADDRESS_SENSOR_1_TYPE,
52 SENSOR_NVS_ADDRESS_SENSOR_1_FREQUENCY,
53 SENSOR_NVS_ADDRESS_SENSOR_2_ENABLED,
54 SENSOR_NVS_ADDRESS_SENSOR_2_POWER,
55 SENSOR_NVS_ADDRESS_SENSOR_2_TYPE,
56 SENSOR_NVS_ADDRESS_SENSOR_2_FREQUENCY,
57 SENSOR_NVS_ADDRESS_LIMIT,
58};
59
64typedef struct {
65 /* Current state of the app */
66 enum sensor_app_state state;
67 /* Tells whether or not to connect network during configuration */
68 uint8_t connect_network_during_configuration;
69 /* Sensor type used for sensor 1 */
70 enum sensor_types sensor_1_type;
71 /* Sensor power name used for sensor 1 */
72 char sensor_1_type_name[SENSOR_TYPE_NAME_LENGTH];
73 /* Sensor type used for sensor 2 */
74 enum sensor_types sensor_2_type;
75 /* Sensor type name used for sensor 2 */
76 char sensor_2_type_name[SENSOR_TYPE_NAME_LENGTH];
77 /* Power voltage used for sensor 1 */
78 enum sensor_voltage sensor_1_voltage;
79 /* Power voltage name used for sensor 1 */
80 char sensor_1_voltage_name[SENSOR_VOLTAGE_NAME_LENGTH];
81 /* Power voltage used for sensor 2 */
82 enum sensor_voltage sensor_2_voltage;
83 /* Power voltage name used for sensor 2 */
84 char sensor_2_voltage_name[SENSOR_VOLTAGE_NAME_LENGTH];
85 /* Whether sensor 1 is enabled */
86 uint8_t is_sensor_1_enabled;
87 /* Whether sensor 2 is enabled */
88 uint8_t is_sensor_2_enabled;
89 /* Frequency of sensor 1 */
90 uint8_t sensor_1_frequency;
91 /* Frequency of sensor 2 */
92 uint8_t sensor_2_frequency;
93 /* Data from sensor 1 */
94 uint8_t *sensor_1_latest_data;
95 /* Time since the latest data was received from sensor 1 */
96 uint32_t sensor_1_latest_data_timestamp;
97 /* Data from sensor 2 */
98 uint8_t *sensor_2_latest_data;
99 /* Time since the latest data was received from sensor 2 */
100 uint32_t sensor_2_latest_data_timestamp;
102
109
116
123
129int sensor_app_error_state(void);
130
136int sensor_app_ble_start(void);
137
138#endif
sensor_app_state
Enum for the sensor app state. This is used to track the state of the sensor app.
Definition sensor_app.h:28
int sensor_app_configuration_state(void)
Execute the sensor app configuration state.
Definition sensor_app.c:533
int sensor_app_error_state(void)
Execute the sensor app error state.
Definition sensor_app.c:664
int sensor_app_ble_start(void)
Start the BLE advertising and services.
Definition sensor_app.c:709
int sensor_app_init(sensor_app_config_t *config)
Initialize the sensor app, handle anything that needs to be initialized for the app such as timers,...
Definition sensor_app.c:508
sensor_nvs_address
Enum for the NVS addresses for the sensor app. This is used to store the sensor app configuration in ...
Definition sensor_app.h:38
int sensor_app_running_state(void)
Execute the sensor app running state.
Definition sensor_app.c:561
This is a library to keep track of sensor ids and sensor power ids. As well as the configuration for ...
sensor_types
Types of sensors that can be configured.
Definition sensor_id.h:29
sensor_voltage
Voltage levels for sensor power.
Definition sensor_id.h:54
Structure for the sensor app configuration. This is used to store the sensor configuration and state.
Definition sensor_app.h:64