annotate Discovery/Inc/cv_heartbeat.h @ 1032:33b91584d827 Puls_Integration

New CV Pulse: The basic infrastructure for external puls measurement via Bluetooth has been added. Precondition is an OSTC with an activated central role. The OSTC will then search for a BLE device with puls measurement service. Reading data and visualization is not implemented yet.
author Ideenmodellierer
date Mon, 28 Jul 2025 18:34:45 +0200
parents
children 5f66e44d69f0
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,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
43 OK_INDICATOR, /* module control */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
44 ERROR_INDICATOR /* module control */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
45 } indicatior_t;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
46
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
47 typedef enum
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
48 {
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
49 BT_READ_NOTHING = 0,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
50 BT_READ_DEVICE_ADDR,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
51 BT_READ_DEVICE_RSSI,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
52 BT_READ_DEVICE_NAME,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
53 BT_READ_CON_DETAILS,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
54 BT_READ_SERV_HANDLE,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
55 BT_READ_SERV_START,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
56 BT_READ_SERV_END,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
57 BT_READ_SERV_UUID
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
58 } readDataType_t;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
59
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
60 typedef enum
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
61 {
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
62 SENSOR_HB_OFFLINE = 0, /* Default Status no data available */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
63 SENSOR_HB_ENABLE_BLE,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
64 SENSOR_HB_CHECK_CONFIG,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
65 SENSOR_HB_DISCOVER,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
66 SENSOR_HB_CONNECT,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
67 SENSOR_HB_SERVICES,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
68 SENSOR_HB_RESTART,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
69 SENSOR_HB_DETECTION_INDICATOR, /* searching for indicators to identify data items */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
70 SENSOR_HB_DETECTION_RSSI,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
71 SENSOR_HB_DETECTION_NAME,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
72 SENSOR_HB_DETECTION_MAN,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
73 SENSOR_HB_DETECTION_UUID,
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
74 SENSOR_HB_FOUND, /* A device providing the requested service was found */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
75 SENSOR_HB_CONNECTED, /* Connection to heartbeat sensor established */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
76 SENSOR_HB_OFFLINEMODE, /* Oflline measurement started */
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
77 } sensorHeartbeat_State_t;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
78
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
79 typedef struct
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
80 {
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
81 uint8_t address[BLUEMOD_ADDR_SIZE];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
82 uint8_t rssi[BLUEMOD_RSSI_SIZE];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
83 uint8_t name[BLUEMOD_NAME_SIZE];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
84 } btDdeviceData_t;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
85
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
86
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
87 typedef struct
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
88 {
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
89 uint8_t handle;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
90 uint8_t start[6];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
91 uint8_t end[6];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
92 uint8_t uuid[50];
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
93 } btDeviceService_t;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
94
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
95
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
96
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
97 sensorHeartbeat_State_t cv_heartbeat_getState();
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
98 void refresh_Heartbeat(void);
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
99 void cv_heartbeat_Control(void);
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
100
33b91584d827 New CV Pulse:
Ideenmodellierer
parents:
diff changeset
101 #endif /* INC_CV_HEARTBEAT_H_ */