Realtek/inc/bluetooth/profile/server/vendor_service.h
2025-11-25 10:21:47 +08:00

81 lines
2.1 KiB
C

/**
*****************************************************************************************
* Copyright(c) 2015, Realtek Semiconductor Corporation. All rights reserved.
*****************************************************************************************
* @file vendor_service.h
* @brief Head file for using Vendor Service Remote Controller.
* @details Vendor service data structs and external functions declaration.
* @author Chenjie Jin
* @date 2018-5-7
* @version v1.1
* *************************************************************************************
*/
#ifndef _VENDOR_SERVICE_H_
#define _VENDOR_SERVICE_H_
#include "profile_server.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/** @brief Demo Profile service related UUIDs. */
#define GATT_UUID_CHAR_VENDOR_HANDSHAKE 0xA001
#define GATT_UUID_CHAR_VENDOR_TEST_MODE 0xA002
/** @brief Index of each characteristic in Demo Profile service database. */
#define BLE_SERVICE_CHAR_VENDOR_HANDSHAKE_INDEX 0x02
#define GATT_SVC_VENDOR_HANDSHAKE_CHAR_CCCD_INDEX 0x03
#define BLE_SERVICE_CHAR_VENDOR_TEST_MODE_INDEX 0x05
#define VENDOR_WRITE_HANDSHAKE 1
#define VENDOR_WRITE_TEST_MODE 2
#define VENDOR_NOTIFY_ENABLE 1
#define VENDOR_NOTIFY_DISABLE 2
/** Message content */
typedef union
{
struct
{
uint8_t len;
uint8_t *report;
} report_data;
} T_VENDOR_WRITE_PARAMETER;
/** @struct _TATVV_WRITE_MSG
* @brief write message
*/
typedef struct
{
uint8_t write_type; /**< ref: @ref Vendor_Write_Info */
T_VENDOR_WRITE_PARAMETER write_parameter;
} T_VENDOR_WRITE_MSG;
typedef union _TVENDOR_UPSTREAM_MSG_DATA
{
uint8_t notification_indification_index;
T_VENDOR_WRITE_MSG write_msg;
} TVENDOR_UPSTREAM_MSG_DATA;
/** Vendor service data to inform application */
typedef struct _T_VENDOR_CALLBACK_DATA
{
T_SERVICE_CALLBACK_TYPE msg_type;
TVENDOR_UPSTREAM_MSG_DATA msg_data;
} T_VENDOR_CALLBACK_DATA;
extern uint8_t vendor_svc_handshake_values[16];
uint8_t vendor_svc_add_service(void *pFunc);
#ifdef __cplusplus
}
#endif
#endif