Files

178 lines
4.9 KiB
C

/**
******************************************************************************
* @file motenv_stm.h
* @author SRA/AST
* @brief Header for motenv_stm.c module
******************************************************************************
* @attention
*
* Copyright (c) 2018-2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef MOTENV_STM_H
#define MOTENV_STM_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/**
* @brief MOTENV Event Opcode definition
*/
typedef enum
{
/* HW Service Chars related events */
HW_MOTION_NOTIFY_ENABLED_EVT,
HW_MOTION_NOTIFY_DISABLED_EVT,
HW_ENV_NOTIFY_ENABLED_EVT,
HW_ENV_NOTIFY_DISABLED_EVT,
HW_ENV_READ_EVT,
HW_ACC_EVENT_NOTIFY_ENABLED_EVT,
HW_ACC_EVENT_NOTIFY_DISABLED_EVT,
HW_ACC_EVENT_READ_EVT,
HW_TOF_NOTIFY_ENABLED_EVT,
HW_TOF_NOTIFY_DISABLED_EVT,
HW_TOF_WRITE_EVT,
/* SW Service Chars related events */
SW_MOTIONFX_NOTIFY_ENABLED_EVT,
SW_MOTIONFX_NOTIFY_DISABLED_EVT,
SW_ECOMPASS_NOTIFY_ENABLED_EVT,
SW_ECOMPASS_NOTIFY_DISABLED_EVT,
SW_ACTIVITY_REC_NOTIFY_ENABLED_EVT,
SW_ACTIVITY_REC_NOTIFY_DISABLED_EVT,
SW_ACTIVITY_REC_READ_EVT,
SW_CARRY_POSITION_NOTIFY_ENABLED_EVT,
SW_CARRY_POSITION_NOTIFY_DISABLED_EVT,
SW_CARRY_POSITION_READ_EVT,
SW_GESTURE_REC_NOTIFY_ENABLED_EVT,
SW_GESTURE_REC_NOTIFY_DISABLED_EVT,
SW_GESTURE_REC_READ_EVT,
SW_PEDOMETER_NOTIFY_ENABLED_EVT,
SW_PEDOMETER_NOTIFY_DISABLED_EVT,
SW_PEDOMETER_READ_EVT,
SW_INTENSITY_DET_NOTIFY_ENABLED_EVT,
SW_INTENSITY_DET_NOTIFY_DISABLED_EVT,
MOTENV_STM_BOOT_REQUEST_EVT,
/* Config Service Chars related events */
CONFIG_NOTIFY_ENABLED_EVT,
CONFIG_NOTIFY_DISABLED_EVT,
CONFIG_WRITE_EVT,
/* Console Service Chars related events */
CONSOLE_TERM_NOTIFY_ENABLED_EVT,
CONSOLE_TERM_NOTIFY_DISABLED_EVT,
CONSOLE_STDERR_NOTIFY_ENABLED_EVT,
CONSOLE_STDERR_NOTIFY_DISABLED_EVT,
CONSOLE_TERM_READ_EVT,
CONSOLE_STDERR_READ_EVT
} MOTENV_STM_Opcode_evt_t;
/**
* @brief MOTENV Event data structure definition
*/
typedef struct
{
uint8_t *pPayload;
uint8_t Length;
} MOTENV_STM_Data_t;
/**
* @brief MOTENV Notification structure definition
*/
typedef struct
{
MOTENV_STM_Opcode_evt_t Motenv_Evt_Opcode;
MOTENV_STM_Data_t DataTransfered;
uint16_t ConnectionHandle;
uint8_t ServiceInstance;
} MOTENV_STM_App_Notification_evt_t;
/* Exported constants --------------------------------------------------------*/
/* Exported Variables ------------------------------------------------------- */
extern uint8_t ToF_BoardPresent;
/* Exported macros -----------------------------------------------------------*/
/**
* @brief Motion (Acc-Gyro-Magneto) Char shortened UUID
*/
#define MOTION_CHAR_UUID (0xE000)
/**
* @brief Environmental (Temp-Humidity-Pressure) Char shortened UUID
*/
#define ENV_CHAR_UUID (0x1D00)
/**
* @brief ToF Char shortened UUID
*/
#define TOF_CHAR_UUID (0x0000)
/**
* @brief Acceleration event Char shortened UUID
*/
#define ACC_EVENT_CHAR_UUID (0x0004)
/**
* @brief Sensor Fusion Char shortened UUID
*/
#define MOTION_FX_CHAR_UUID (0x0100)
/**
* @brief E-Compass event Char shortened UUID
*/
#define ECOMPASS_CHAR_UUID (0x0040)
/**
* @brief Activity Recognition Char event Char shortened UUID
*/
#define ACTIVITY_REC_CHAR_UUID (0x0010)
/**
* @brief Carry Position event Char shortened UUID
*/
#define CARRY_POSITION_CHAR_UUID (0x0008)
/**
* @brief Gesture Recognition event Char shortened UUID
*/
#define GESTURE_REC_CHAR_UUID (0x0200)
/**
* @brief Pedometer Char shortened UUID
*/
#define PEDOMETER_CHAR_UUID (0x0001)
/**
* @brief Intensity Detection Char shortened UUID
*/
#define INTENSITY_DET_CHAR_UUID (0x0020)
/**
* @brief Config Char shortened UUID
*/
#define CONFIG_CHAR_UUID (0x0002)
/**
* @brief Console Terminal Char shortened UUID
*/
#define CONSOLE_TERM_CHAR_UUID (0x010E)
/**
* @brief Cosnole Stderr Char shortened UUID
*/
#define CONSOLE_STDERR_CHAR_UUID (0x020E)
/* Exported functions ------------------------------------------------------- */
void MOTENV_STM_Init(void);
void MOTENV_STM_App_Notification(MOTENV_STM_App_Notification_evt_t *pNotification);
tBleStatus MOTENV_STM_App_Update_Char(uint16_t UUID, uint8_t payloadLen, uint8_t *pPayload);
#ifdef __cplusplus
}
#endif
#endif /* MOTENV_STM_H */