annotate Discovery/Inc/cv_heartbeat.h @ 1033:5f66e44d69f0 Puls_Integration

Added functionality needed for subscription of standard Bluetooth pulse service notifications
author Ideenmodellierer
date Sat, 02 Aug 2025 22:42:51 +0200
parents 33b91584d827
children 195bfbdf961d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
1 ///////////////////////////////////////////////////////////////////////////////
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
2 /// -*- coding: UTF-8 -*-
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
3 ///
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
4 /// \file Discovery/Inc/cv_heartbeat.h
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
5 /// \brief Function definitions for connecting to a Polar HC10 heartbeat sensor
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
6 /// \date 3 July 2025
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
7
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
8 ///////////////////////////////////////////////////////////////////////////////
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
9 /// \par Copyright (c) 2014-2015 Heinrichs Weikamp gmbh
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
10 ///
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
11 /// This program is free software: you can redistribute it and/or modify
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
12 /// it under the terms of the GNU General Public License as published by
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
13 /// the Free Software Foundation, either version 3 of the License, or
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
14 /// (at your option) any later version.
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
15 ///
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
16 /// This program is distributed in the hope that it will be useful,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
17 /// but WITHOUT ANY WARRANTY; without even the implied warranty of
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
18 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
19 /// GNU General Public License for more details.
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
20 ///
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
21 /// You should have received a copy of the GNU General Public License
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
22 /// along with this program. If not, see <http://www.gnu.org/licenses/>.
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
23 //////////////////////////////////////////////////////////////////////////////
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
24
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
25 #ifndef INC_CV_HEARTBEAT_H_
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
26 #define INC_CV_HEARTBEAT_H_
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
27
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
28 #include <stdint.h>
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
29
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
30
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
31 #define BLUEMOD_ADDR_SIZE (20u) /* length of address respond */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
32 #define BLUEMOD_RSSI_SIZE (5u)
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
33 #define BLUEMOD_NAME_SIZE (40u)
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
34
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
35 void openEdit_Heartbeat(void);
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
36
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
37 typedef enum
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
38 {
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
39 NO_INDICATOR = 0,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
40 DEVICE_INDICATOR,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
41 CONNECTION_INDICATOR,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
42 SERVICE_INDICATOR,
1033
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
43 CHARACTERISTIC_INDICATOR,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
44 DESCRIPTOR_INDICATOR,
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
45 OK_INDICATOR, /* module control */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
46 ERROR_INDICATOR /* module control */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
47 } indicatior_t;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
48
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
49 typedef enum
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
50 {
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
51 BT_READ_NOTHING = 0,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
52 BT_READ_DEVICE_ADDR,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
53 BT_READ_DEVICE_RSSI,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
54 BT_READ_DEVICE_NAME,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
55 BT_READ_CON_DETAILS,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
56 BT_READ_SERV_HANDLE,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
57 BT_READ_SERV_START,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
58 BT_READ_SERV_END,
1033
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
59 BT_READ_SERV_UUID,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
60 BT_READ_CHAR_CONHANDLE,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
61 BT_READ_CHAR_ATTRIBUTE,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
62 BT_READ_CHAR_PROPERTY,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
63 BT_READ_CHAR_VALUEHANDLE,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
64 BT_READ_CHAR_UUID,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
65 BT_READ_DESC_CONHANDLE,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
66 BT_READ_DESC_CHARHANDLE,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
67 BT_READ_DESC_DESCHANDLE,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
68 BT_READ_DESC_UUID
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
69 } readDataType_t;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
70
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
71 typedef enum
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
72 {
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
73 SENSOR_HB_OFFLINE = 0, /* Default Status no data available */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
74 SENSOR_HB_ENABLE_BLE,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
75 SENSOR_HB_CHECK_CONFIG,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
76 SENSOR_HB_DISCOVER,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
77 SENSOR_HB_CONNECT,
1033
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
78 SENSOR_HB_DISCONNECT,
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
79 SENSOR_HB_SERVICES,
1033
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
80 SENSOR_HB_CHARACTERISTIC,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
81 SENSOR_HB_DESCRIPTOR,
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
82 SENSOR_HB_SUBSCRIBE,
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
83 SENSOR_HB_RESTART,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
84 SENSOR_HB_DETECTION_INDICATOR, /* searching for indicators to identify data items */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
85 SENSOR_HB_DETECTION_RSSI,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
86 SENSOR_HB_DETECTION_NAME,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
87 SENSOR_HB_DETECTION_MAN,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
88 SENSOR_HB_DETECTION_UUID,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
89 SENSOR_HB_FOUND, /* A device providing the requested service was found */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
90 SENSOR_HB_CONNECTED, /* Connection to heartbeat sensor established */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
91 SENSOR_HB_OFFLINEMODE, /* Oflline measurement started */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
92 } sensorHeartbeat_State_t;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
93
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
94 typedef struct
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
95 {
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
96 uint8_t address[BLUEMOD_ADDR_SIZE];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
97 uint8_t rssi[BLUEMOD_RSSI_SIZE];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
98 uint8_t name[BLUEMOD_NAME_SIZE];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
99 } btDdeviceData_t;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
100
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
101
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
102 typedef struct
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
103 {
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
104 uint8_t handle;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
105 uint8_t start[6];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
106 uint8_t end[6];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
107 uint8_t uuid[50];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
108 } btDeviceService_t;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
109
1033
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
110 typedef struct
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
111 {
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
112 uint8_t conHandle;
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
113 uint8_t attrHandle[10];
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
114 uint8_t properties[10];
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
115 uint8_t valueHandle[10];
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
116 uint8_t uuid[50];
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
117 } btDeviceCharacteristic_t;
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
118
1033
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
119 typedef struct
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
120 {
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
121 uint8_t conHandle;
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
122 uint8_t charHandle[10];
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
123 uint8_t descHandle[10];
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
124 uint8_t uuid[50];
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
125 } btDeviceDescriptor_t;
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
126
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
127 sensorHeartbeat_State_t cv_heartbeat_getState();
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
128 void refresh_Heartbeat(void);
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
129 void cv_heartbeat_Control(void);
1033
5f66e44d69f0 Added functionality needed for subscription of standard Bluetooth pulse service notifications
Ideenmodellierer
parents: 1032
diff changeset
130 uint8_t cv_heartbeat_HandleData();
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
131
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
132 #endif /* INC_CV_HEARTBEAT_H_ */