Buoyancy Firmware  1.0
Buoyancy Vehicle Firmware Documentation
main.h
Go to the documentation of this file.
1 
2 
3 
4 #ifndef _MAIN_H
5 #define _MAIN_H
6 
7 #include <stdbool.h>
8 #include <stdint.h>
9 #include <string.h>
10 #include <stdio.h>
11 #include <stdlib.h>
12 #include <math.h>
13 
14 #include "PID.h"
15 #include "PWM.h"
16 #include "SDcard.h"
17 #include "TWIM.h"
18 #include "SAADC.h"
19 #include "motor.h"
20 #include "FSM.h"
21 #include "timers.h"
22 #include "mission.h"
23 #include "menu.h"
24 
25 
26 // SDK drivers
27 #include "nordic_common.h"
28 
29 #include "ble.h"
30 #include "ble_hci.h"
31 #include "ble_srv_common.h"
32 #include "ble_advdata.h"
33 #include "ble_advertising.h"
34 #include "ble_conn_params.h"
35 #include "ble_nus.h"
36 #include "ble_conn_state.h"
37 #include "ble_link_ctx_manager.h"
38 
39 #include "nrf.h"
40 #include "nrf_sdh.h"
41 #include "nrf_sdh_soc.h"
42 #include "nrf_sdh_ble.h"
43 #include "nrf_sdm.h"
44 #include "nrf_ble_gatt.h"
45 #include "nrf_ble_qwr.h"
46 #include "nrf_pwr_mgmt.h"
47 #include "nrf_drv_clock.h"
48 #include "nrf_log.h"
49 #include "nrf_log_ctrl.h"
50 #include "nrf_log_default_backends.h"
51 #include "nrf_log_backend_rtt.h"
52 #include "nrf_delay.h"
53 #include "nrf_drv_gpiote.h"
54 #include "nrf_error.h"
55 #include "nrf_drv_twi.h"
56 
57 #include "nrfx_saadc.h"
58 
59 
60 #include "app_error.h"
61 #include "app_uart.h"
62 #include "app_util_platform.h"
63 
64 #include "bsp_btn_ble.h"
65 #include "sdk_errors.h"
66 #include "fds.h"
67 #include "peer_manager.h"
68 #include "peer_manager_handler.h"
69 #include "sensorsim.h"
70 #include "sdk_macros.h"
71 
72 #if defined (UART_PRESENT)
73 #include "nrf_uart.h"
74 #endif
75 #if defined (UARTE_PRESENT)
76 #include "nrf_uarte.h"
77 #endif
78 
79 
90 #define DEVICE_NAME "Buoyancy"
91 #define MANUFACTURER_NAME "NTNU"
92 #define APP_ADV_INTERVAL 64
94 #define NUS_SERVICE_UUID_TYPE BLE_UUID_TYPE_VENDOR_BEGIN
96 #define APP_ADV_DURATION 18000
97 #define APP_BLE_OBSERVER_PRIO 3
98 #define APP_BLE_CONN_CFG_TAG 1
100 #define MIN_CONN_INTERVAL MSEC_TO_UNITS(7.5, UNIT_1_25_MS)
101 #define MAX_CONN_INTERVAL MSEC_TO_UNITS(75, UNIT_1_25_MS)
102 #define SLAVE_LATENCY 0
103 #define CONN_SUP_TIMEOUT MSEC_TO_UNITS(4000, UNIT_10_MS)
105 #define FIRST_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(5000)
106 #define NEXT_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(30000)
107 #define MAX_CONN_PARAMS_UPDATE_COUNT 6
109 #define SEC_PARAM_BOND 1
110 #define SEC_PARAM_MITM 0
111 #define SEC_PARAM_LESC 0
112 #define SEC_PARAM_KEYPRESS 0
113 #define SEC_PARAM_IO_CAPABILITIES BLE_GAP_IO_CAPS_NONE
114 #define SEC_PARAM_OOB 0
115 #define SEC_PARAM_MIN_KEY_SIZE 7
116 #define SEC_PARAM_MAX_KEY_SIZE 16
118 #define DEAD_BEEF 0xDEADBEEF
121 #define UART_TX_BUF_SIZE 256
122 #define UART_RX_BUF_SIZE 256
125 #define TXD_PIN (6UL)
126 #define RXD_PIN (8UL)
130 #define MOTION_INT 13UL
131 #define TMP_ALERT 15UL
132 #define HALLEFFECT_INT 17UL
133 #define TOP_LIMIT 29UL
134 #define BOTTOM_LIMIT 28UL
135 #define PRESSURE_SWITCH 20UL
137 #define LOW_POWER_THRESHOLD 8700
140 void advertising_start(bool);
141 void assert_nrf_callback(uint16_t, const uint8_t *);
142 void nus_send(uint8_t*, uint16_t);
143 void printLine(uint8_t data[], uint16_t);
144 
145 void anotherPrint(void);
146 void handleRXdata(ble_evt_t const *);
147 void uart_error_handle(app_uart_evt_t*);
148 void sleep_mode_enter(void);
149 void idle_state_handle(void);
150 void BLEdisconnect(void);
151 void disableAdvOnDisconnect(void);
152 void enableAdvOnDisconnect(void);
153 bool BLEconnected(void);
154 void stopAdvertising(void);
155 void advLEDoff(void);
156 void readTMP117(uint8_t *, uint8_t *);
157 void enablePressureSensor(void);
158 void disablePressureSensor(void);
159 
160 #endif // _MAIN_H
161 
unsigned char uint8_t
Definition: nrf_drv_uart_PP.c:22
void sleep_mode_enter(void)
Function for putting the chip into sleep mode.
Definition: main.c:883
void assert_nrf_callback(uint16_t line_num, const uint8_t *p_file_name)
Callback function for asserts in the SoftDevice.
Definition: main.c:153
void disableAdvOnDisconnect(void)
disable restarted advertising upon disconnection.
Definition: main.c:981
void readTMP117(uint8_t *tempMSB, uint8_t *tempLSB)
Read TMP117 16 bit temperature register.
Definition: main.c:1022
void stopAdvertising()
stop advertising
Definition: main.c:1007
void idle_state_handle(void)
Definition: main.c:537
unsigned short uint16_t
Definition: nrf_drv_uart_PP.c:28
void BLEdisconnect()
Disconnect BLE connection.
Definition: main.c:975
void disablePressureSensor()
Function to disable pressure sensor.
Definition: main.c:852
bool BLEconnected()
Check if connected to client.
Definition: main.c:994
void uart_error_handle(app_uart_evt_t *)
void advLEDoff(void)
void enableAdvOnDisconnect(void)
enable restarted advertising upon disconnection.
Definition: main.c:985
void printLine(uint8_t data[], uint16_t)
void anotherPrint(void)
void enablePressureSensor()
Function to enable pressure sensor.
Definition: main.c:846
void nus_send(uint8_t *, uint16_t)
void handleRXdata(ble_evt_t const *)