Mercurial > public > ostc4
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Discovery/Inc/cv_heartbeat.h Mon Jul 28 18:34:45 2025 +0200 @@ -0,0 +1,101 @@ +/////////////////////////////////////////////////////////////////////////////// +/// -*- coding: UTF-8 -*- +/// +/// \file Discovery/Inc/cv_heartbeat.h +/// \brief Function definitions for connecting to a Polar HC10 heartbeat sensor +/// \date 3 July 2025 + +/////////////////////////////////////////////////////////////////////////////// +/// \par Copyright (c) 2014-2015 Heinrichs Weikamp gmbh +/// +/// This program is free software: you can redistribute it and/or modify +/// it under the terms of the GNU General Public License as published by +/// the Free Software Foundation, either version 3 of the License, or +/// (at your option) any later version. +/// +/// This program is distributed in the hope that it will be useful, +/// but WITHOUT ANY WARRANTY; without even the implied warranty of +/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +/// GNU General Public License for more details. +/// +/// You should have received a copy of the GNU General Public License +/// along with this program. If not, see <http://www.gnu.org/licenses/>. +////////////////////////////////////////////////////////////////////////////// + +#ifndef INC_CV_HEARTBEAT_H_ +#define INC_CV_HEARTBEAT_H_ + +#include <stdint.h> + + +#define BLUEMOD_ADDR_SIZE (20u) /* length of address respond */ +#define BLUEMOD_RSSI_SIZE (5u) +#define BLUEMOD_NAME_SIZE (40u) + +void openEdit_Heartbeat(void); + +typedef enum +{ + NO_INDICATOR = 0, + DEVICE_INDICATOR, + CONNECTION_INDICATOR, + SERVICE_INDICATOR, + OK_INDICATOR, /* module control */ + ERROR_INDICATOR /* module control */ +} indicatior_t; + +typedef enum +{ + BT_READ_NOTHING = 0, + BT_READ_DEVICE_ADDR, + BT_READ_DEVICE_RSSI, + BT_READ_DEVICE_NAME, + BT_READ_CON_DETAILS, + BT_READ_SERV_HANDLE, + BT_READ_SERV_START, + BT_READ_SERV_END, + BT_READ_SERV_UUID +} readDataType_t; + +typedef enum + { + SENSOR_HB_OFFLINE = 0, /* Default Status no data available */ + SENSOR_HB_ENABLE_BLE, + SENSOR_HB_CHECK_CONFIG, + SENSOR_HB_DISCOVER, + SENSOR_HB_CONNECT, + SENSOR_HB_SERVICES, + SENSOR_HB_RESTART, + SENSOR_HB_DETECTION_INDICATOR, /* searching for indicators to identify data items */ + SENSOR_HB_DETECTION_RSSI, + SENSOR_HB_DETECTION_NAME, + SENSOR_HB_DETECTION_MAN, + SENSOR_HB_DETECTION_UUID, + SENSOR_HB_FOUND, /* A device providing the requested service was found */ + SENSOR_HB_CONNECTED, /* Connection to heartbeat sensor established */ + SENSOR_HB_OFFLINEMODE, /* Oflline measurement started */ + } sensorHeartbeat_State_t; + +typedef struct +{ + uint8_t address[BLUEMOD_ADDR_SIZE]; + uint8_t rssi[BLUEMOD_RSSI_SIZE]; + uint8_t name[BLUEMOD_NAME_SIZE]; +} btDdeviceData_t; + + +typedef struct +{ + uint8_t handle; + uint8_t start[6]; + uint8_t end[6]; + uint8_t uuid[50]; +} btDeviceService_t; + + + +sensorHeartbeat_State_t cv_heartbeat_getState(); +void refresh_Heartbeat(void); +void cv_heartbeat_Control(void); + +#endif /* INC_CV_HEARTBEAT_H_ */
