Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources

This commit is contained in:
2026-07-06 11:30:13 +08:00
commit e76462eeb7
3451 changed files with 1415300 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
#ifndef _HCI_CONTROLLER_H_
#define _HCI_CONTROLLER_H_
#include "basic_include.h"
#include "lib/skb/skb.h"
#include "lib/lmac/lmac_def.h"
#ifdef __cplusplus
extern "C" {
#endif
enum BLE_LL_TYPE {
BLE_LL_TYPE_ADV_TRX = 0x0,
BLE_LL_TYPE_ADV_CUSTOM,
BLE_LL_TYPE_CONNECT,
};
enum BLE_LL_EVENT {
BLE_LL_EVENT_CONNECTED = 0x1,
BLE_LL_EVENT_DISCONNECTED,
BLE_LL_EVENT_EXCHANGE_LEHGTH,
};
enum BLE_LL_IOCTL {
BLE_IOCTL_SET_DEV_ADDR = 1,
BLE_IOCTL_SET_ADV_DATA = 2,
BLE_IOCTL_SET_SCAN_RESP = 3,
BLE_IOCTL_SET_ADV_INTERVAL = 4,
BLE_IOCTL_SET_ADV_EN = 5,
BLE_IOCTL_SET_ADV_TYPE_FILTER = 6,
BLE_IOCTL_GET_PERR_ADDRTYPE = 7,
BLE_IOCTL_GET_PERR_ADDR = 8,
BLE_IOCTL_GET_CONN_INTERVAL = 9,
BLE_IOCTL_GET_CONN_LATENCY = 10,
BLE_IOCTL_GET_SUPERVISION_TIMEOUT = 11,
BLE_IOCTL_SET_COEXIST_EN = 12,
BLE_IOCTL_GET_COEXIST_CRASH = 13,
BLE_IOCTL_SET_LL_LENGTH = 14,
BLE_IOCTL_SET_DISCONNECT = 15,
BLE_IOCTL_GET_RSSI = 16,
BLE_IOCTL_GET_BLE_EN = 17,
};
struct bt_rx_info {
uint8 channel; //current channel
uint8 con_handle; //hci handle
int8 rssi;
uint8 frm_type;
uint32 rev;
};
struct bt_tx_info {
uint16 con_handle; //hci handle
uint8 data_type; //hci type
uint8 r1;
};
struct bt_ops {
void *priv;
void *lops;
uint8 headroom, tailroom;
int32(*open)(struct bt_ops *ops, uint8 type, uint8 chan);
int32(*close)(struct bt_ops *ops);
int32(*tx)(struct bt_ops *ops, struct sk_buff *skb);
int32(*tx_status)(void *priv, struct sk_buff *skb);
int32(*rx)(void *priv, struct sk_buff *skb);
int32(*ioctl)(struct bt_ops *ops, uint32 cmd, uint32 param1, uint32 param2);
int32(*event)(void *priv, uint32 event_id, uint32 param1, uint32 param2);
};
#define ble_ll_open(ops, type, chan) ops->open(ops, type, chan)
#define ble_ll_close(ops) ops->close(ops)
#define ble_ll_set_advdata(ops, data, len) ops->ioctl(ops, BLE_IOCTL_SET_ADV_DATA, (uint32)(data), (len))
#define ble_ll_set_scan_rsp(ops, data, len) ops->ioctl(ops, BLE_IOCTL_SET_SCAN_RESP, (uint32)(data), (len))
#define ble_ll_set_devaddr(ops, addr) ops->ioctl(ops, BLE_IOCTL_SET_DEV_ADDR, (uint32)(addr), 0)
#define ble_ll_set_adv_interval(ops, interval) ops->ioctl(ops, BLE_IOCTL_SET_ADV_INTERVAL, (uint32)(interval), 0)
#define ble_ll_set_adv_en(ops, en) ops->ioctl(ops, BLE_IOCTL_SET_ADV_EN, (uint32)(en), 0)
#define ble_ll_set_adv_type_filter(ops, type) ops->ioctl(ops, BLE_IOCTL_SET_ADV_TYPE_FILTER, (uint32)(type), 0)
#define ble_ll_get_peer_addr(ops, hdl) ops->ioctl(ops, BLE_IOCTL_GET_PERR_ADDR, (uint32)(hdl), 0)
#define ble_ll_get_peer_addrtype(ops, hdl) ops->ioctl(ops, BLE_IOCTL_GET_PERR_ADDRTYPE, (uint32)(hdl), 0)
#define ble_ll_get_conn_interval(ops, hdl) ops->ioctl(ops, BLE_IOCTL_GET_CONN_INTERVAL, (uint32)(hdl), 0)
#define ble_ll_get_conn_latency(ops, hdl) ops->ioctl(ops, BLE_IOCTL_GET_CONN_LATENCY, (uint32)(hdl), 0)
#define ble_ll_get_supervision_timeout(ops, hdl) ops->ioctl(ops, BLE_IOCTL_GET_SUPERVISION_TIMEOUT, (uint32)(hdl), 0)
#define ble_ll_set_coexist_en(ops, coexist_en, duty_en) ops->ioctl(ops, BLE_IOCTL_SET_COEXIST_EN, (uint32)(coexist_en), (uint32)(duty_en))
#define ble_ll_get_coexist_crash(ops) ops->ioctl(ops, BLE_IOCTL_GET_COEXIST_CRASH, 0, 0)
#define ble_ll_set_ll_length(ops, length) ops->ioctl(ops, BLE_IOCTL_SET_LL_LENGTH, length, 0)
#define ble_ll_set_disconnect(ops) ops->ioctl(ops, BLE_IOCTL_SET_DISCONNECT, 0, 0)
#define ble_ll_get_rssi(ops) ops->ioctl(ops, BLE_IOCTL_GET_RSSI, 0, 0)
#define ble_ll_get_ble_en(ops) ops->ioctl(ops, BLE_IOCTL_GET_BLE_EN, 0, 0)
struct bt_ops *ble_ll_init(struct lmac_ops *ops);
int32 bt_hci_init(struct bt_ops *btops);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,49 @@
#ifndef _UBLE_HCI_HOST_H_
#define _UBLE_HCI_HOST_H_
#include "basic_include.h"
#ifdef __cplusplus
extern "C" {
#endif
struct hci_data {
uint8 type;
uint8 *data;
uint32 len;
};
struct bt_rx_info {
uint8 channel; //current channel
uint8 con_handle; //hci handle
int8 rssi;
uint8 frm_type;
uint32 rev;
};
struct bt_tx_info {
uint16 con_handle; //hci handle
uint8 data_type; //hci type
uint8 r1;
};
int32 bt_hci_tx_acl_data(uint8 *data, uint32 len);
int32 bt_hci_tx_adv_data(uint8 *data, uint32 len);
int32 bt_hci_set_mode(uint8 mode, uint8 chan);
int32 bt_hci_set_advdata(uint8 *data, uint32 data_len);
int32 bt_hci_set_scan_rsp(uint8 *data, uint32 data_len);
int32 bt_hci_set_devaddr(uint8 *addr);
int32 bt_hci_set_adv_interval(uint32 interval);
int32 bt_hci_set_adv_en(uint8 enable);
int32 bt_hci_set_adv_type_filter(uint8 type);
int32 bt_hci_set_coexist_en(uint8 coexist_en, uint8 duty_en);
int32 bt_hci_set_ll_length(uint16 length);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,18 @@
#ifndef HCI_TRANSPORT_RPC_H
#define HCI_TRANSPORT_RPC_H
#include "basic_include.h"
#if defined __cplusplus
extern "C" {
#endif
int32 hci_controller_recv(uint32 data, uint32 len);
int32 hci_host_recv(uint32 data, uint32 len);
/* API_END */
#if defined __cplusplus
}
#endif
#endif // HCI_TRANSPORT_RPC_H

View File

@@ -0,0 +1,95 @@
#ifndef _BLE_ADV_H_
#define _BLE_ADV_H_
#ifdef __cplusplus
extern "C" {
#endif
// 自定义协议
#define ADV_DISCOVER_TYPE (6) // 广播包类型(可过滤广播包)
#define ADV_MANUFACTURER_ID (0x4104) // 生产厂商ID可做识别头信息
#define ADV_DATA_MAX_LEN (39) // 广播最大长度header+payload
#define RX_DATA_MAX_LEN (256) // 接收数据总长度id+len+data
#define ADV_IDENTIFY_MAX_LEN (24) // 识别头最大长度
#define ADV_IDENTIFY_SET_LEN (8) // 识别头设置长度(0~23)
#define ADV_MAX_SECTION_LEN (16) // 广播发送数据段最大长度
typedef struct ble_pro_str {
uint32 cur_tsf;
uint32 next_tsf;
uint32 cur_interval_tsf;
uint32 next_interval_tsf;
uint32 sync_tsf;
uint8 sync_tsf_en;
}TYPE_STRUCT_BLE_CTRL;
struct ble_adv_info {
union HEADER_INFO {
struct {
uint16 pdu_type : 4, // bit0:3
reserved0 : 1, // bit4
chn_sel : 1, // bit5
tx_add : 1, // bit6
rx_add : 1, // bit7
length : 8; // bit8:15
};
uint16 header;
} header_info;
union PAYLOAD_INFO {
struct {
uint8 addr[6];
uint8 ad_len;
uint8 ad_type;
uint16 manufacturer_id;
#if (ADV_IDENTIFY_SET_LEN > 0 && ADV_IDENTIFY_SET_LEN < ADV_IDENTIFY_MAX_LEN)
uint8 identify_info[ADV_IDENTIFY_SET_LEN];
#endif
uint8 section_num;
uint8 section_idx;
uint8 byte_len;
#if (ADV_IDENTIFY_SET_LEN > 0 && ADV_IDENTIFY_SET_LEN < ADV_IDENTIFY_MAX_LEN)
uint8 data[24-ADV_IDENTIFY_SET_LEN];
#else
uint8 data[24];
#endif
};
uint8 payload[37];
} payload_info;
}__attribute__((packed));
struct ble_adv_process {
uint8 start_flag;
uint16 section_num;
uint16 section_idx;
uint16 byte_offset_len;
uint16 rec_overtime; // 广播接收超时时间,根据不同包数来定义超时时间
uint32 cur_tick;
uint16 len;
uint8 data[RX_DATA_MAX_LEN];
};
struct ble_rx_ctrl {
struct ble_adv_info adv_info; // 广播包数据
struct ble_adv_process adv_pro; // 数据处理
};
int32 ble_adv_rx_data(uint8 *data, uint32 len);
int32 ble_adv_tx_data(uint8 *data, int32 len);
int32 ble_adv_ctrl_create(void);
int32 ble_adv_ctrl_destory(void);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,46 @@
/**
******************************************************************************
* @file sdk\include\lib\bluetooth\uble
* @author TAIXIN-SEMI Application Team
* @version V2.0.0
* @date 03-07-2025
* @brief This file contains three BLE configuration network features.
******************************************************************************
* @attention
*
* COPYRIGHT 2023 TAIXIN-SEMI
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef _BLE_DEMO_H_
#define _BLE_DEMO_H_
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "lib/bluetooth/hci/hci_host.h"
#include "lib/bluetooth/uble/uble.h"
#include "lib/bluetooth/uble/ble_adv.h"
enum switch_type
{
WIRELESS_WIFI,
WIRELESS_BLE,
};
void ble_adv_parse_param(uint8 *data, uint32 len);
int32 ble_demo_init(void);
int32 ble_set_mode(uint8 mode, uint8 chan);
int32 ble_set_coexist_en(uint8 coexist, uint8 dec_duty);
#ifdef __cplusplus
}
#endif
#endif
/*************************** (C) COPYRIGHT 2023 TAIXIN-SEMI ***** END OF FILE *****/

View File

@@ -0,0 +1,639 @@
#ifndef _HGIC_UBLE_H_
#define _HGIC_UBLE_H_
#include "basic_include.h"
#ifdef __cplusplus
extern "C" {
#endif
#define uble_dbg(fmt, ...) os_printf(KERN_DEBUG"%s:%d::"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define uble_err(fmt, ...) os_printf(KERN_ERR"%s:%d::"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define UBLE_GATT_CHARAC_BROADCAST (0x01)
#define UBLE_GATT_CHARAC_READ (0x02)
#define UBLE_GATT_CHARAC_WRITE_WITHOUT_RESPONSE (0x04)
#define UBLE_GATT_CHARAC_WRITE (0x08)
#define UBLE_GATT_CHARAC_NOTIFY (0x10)
#define UBLE_GATT_CHARAC_INDICATE (0x20)
#define UBLE_GATT_CHARAC_AUTHENTICATED_SIGNED_WRITES (0x40)
#define UBLE_GATT_CHARAC_EXTENDED_PROPERTIES (0x80)
#define UBLE_ATT_ERR_INVALID_HANDLE 0x01
#define UBLE_ATT_ERR_READ_NOT_PERMITTED 0x02
#define UBLE_ATT_ERR_WRITE_NOT_PERMITTED 0x03
#define UBLE_ATT_ERR_INVALID_PDU 0x04
#define UBLE_ATT_ERR_INSUFFICIENT_AUTHEN 0x05
#define UBLE_ATT_ERR_REQ_NOT_SUPPORTED 0x06
#define UBLE_ATT_ERR_INVALID_OFFSET 0x07
#define UBLE_ATT_ERR_INSUFFICIENT_AUTHOR 0x08
#define UBLE_ATT_ERR_PREPARE_QUEUE_FULL 0x09
#define UBLE_ATT_ERR_ATTR_NOT_FOUND 0x0a
#define UBLE_ATT_ERR_ATTR_NOT_LONG 0x0b
#define UBLE_ATT_ERR_INSUFFICIENT_KEY_SZ 0x0c
#define UBLE_ATT_ERR_INVALID_ATTR_VALUE_LEN 0x0d
#define UBLE_ATT_ERR_UNLIKELY 0x0e
#define UBLE_ATT_ERR_INSUFFICIENT_ENC 0x0f
#define UBLE_ATT_ERR_UNSUPPORTED_GROUP 0x10
#define UBLE_ATT_ERR_INSUFFICIENT_RES 0x11
#define UBLE_OPCODE_ATT_ERROR (0x01)
#define UBLE_OPCODE_EXCHANGE_MTU_REQ (0x02)
#define UBLE_OPCODE_EXCHANGE_MTU_RSP (0x03)
#define UBLE_OPCODE_FIND_INFORMATION_REQ (0x04)
#define UBLE_OPCODE_FIND_INFORMATION_RSP (0x05)
#define UBLE_OPCODE_FIND_BY_TYPE_VALUE_REQ (0x06)
#define UBLE_OPCODE_FIND_BY_TYPE_VALUE_RESP (0x07)
#define UBLE_OPCODE_READ_BY_TYPE_REQ (0x08)
#define UBLE_OPCODE_READ_BY_TYPE_RSP (0x09)
#define UBLE_OPCODE_READ_REQ (0x0A)
#define UBLE_OPCODE_READ_RSP (0x0B)
#define UBLE_OPCODE_READ_BLOB_REQ (0x0C)
#define UBLE_OPCODE_READ_MULTIPLE_REQ (0x0e)
#define UBLE_OPCODE_READ_MULTIPLE_RESP (0x0f)
#define UBLE_OPCODE_READ_BY_GROUP_TYPE_REQ (0x10)
#define UBLE_OPCODE_READ_BY_GROUP_TYPE_RSP (0x11)
#define UBLE_OPCODE_WRITE_REQ (0x12)
#define UBLE_OPCODE_WRITE_RESP (0x13)
#define UBLE_OPCODE_PREPARE_WRITE_REQ (0x16)
#define UBLE_OPCODE_EXECUTE_WRITE_REQ (0x18)
#define UBLE_OPCODE_EXECUTE_WRITE_RESP (0x19)
#define UBLE_OPCODE_HANDLE_VALUE_NOTIFY (0x1B)
#define UBLE_OPCODE_HANDLE_VALUE_INDICATION (0x1D)
#define UBLE_OPCODE_HANDLE_VALUE_CONFIRM (0x1E)
#define UBLE_OPCODE_WRITE_CMD (0x52)
#define UBLE_OPCODE_SIGNED_WRITE_CMD (0xD2)
enum UBLE_VALUE_TYPE {
UBLE_VALUE_TYPE_UINT8,
UBLE_VALUE_TYPE_UINT16,
UBLE_VALUE_TYPE_UINT32,
UBLE_VALUE_TYPE_UINT8_BIT,
UBLE_VALUE_TYPE_UINT16_BIT,
UBLE_VALUE_TYPE_UINT32_BIT,
UBLE_VALUE_TYPE_BYTES,
UBLE_VALUE_TYPE_STRING,
UBLE_VALUE_TYPE_HDL,
};
struct uble_value_entry {
uint8 type, bitoff;
uint16 maskbit;
uint32 size;
void *value;
};
#if UBLE_UUID_128_SUPPORT
struct uble_gatt_data {
union{
uint16 att_type;
uint8 att_type_128[16];
};
uint16 properties;
union{
uint32 att_value; /*value att_type or uble_value_entry*/
uint8 att_value_128[16];
};
};
#else
struct uble_gatt_data {
uint16 att_type, properties;
uint32 att_value; /*value att_type or uble_value_entry*/
};
#endif
typedef int32(*uble_gatt_valhdl)(const struct uble_value_entry *entry, uint8 read, uint8 *buff, int32 size, uint32 offset);
extern int32 uble_init(const struct uble_gatt_data *att_table, uint16 att_table_size, uint16 att_mtu, void *adv_rx);
// att_hdl: the CHARACTER_VALUE's handle that has Notify properties.
extern int32 uble_gatt_notify(uint16 att_hdl, uint8 *data, int32 len);
// att_hdl: the CHARACTER_VALUE's handle that has Indicate properties.
extern int32 uble_gatt_indicate(uint16 att_hdl, uint8 *data, int32 len);
// query att_hdl by uuid.
// args:
// uuid: short number, e.g: 0x2b10, 'size' must is 16.
// uuid: uint8 pointer, e.g: uint8 uuid_128[16], 'size' must is 128.
extern int32 uble_uuid_2hdl(uint32 uuid, uint8 size);
/*
0x1800 Generic Access service
0x1801 Generic Attribute service
0x1802 Immediate Alert service
0x1803 Link Loss service
0x1804 Tx Power service
0x1805 Current Time service
0x1806 Reference Time Update service
0x1807 Next DST Change service
0x1808 Glucose service
0x1809 Health Thermometer service
0x180A Device Information service
0x180D Heart Rate service
0x180E Phone Alert Status service
0x180F Battery service
0x1810 Blood Pressure service
0x1811 Alert Notification service
0x1812 Human Interface Device service
0x1813 Scan Parameters service
0x1814 Running Speed and Cadence service
0x1815 Automation IO service
0x1816 Cycling Speed and Cadence service
0x1818 Cycling Power service
0x1819 Location and Navigation service
0x181A Environmental Sensing service
0x181B Body Composition service
0x181C User Data service
0x181D Weight Scale service
0x181E Bond Management service
0x181F Continuous Glucose Monitoring service
0x1820 Internet Protocol Support service
0x1821 Indoor Positioning service
0x1822 Pulse Oximeter service
0x1823 HTTP Proxy service
0x1824 Transport Discovery service
0x1825 Object Transfer service
0x1826 Fitness Machine service
0x1827 Mesh Provisioning service
0x1828 Mesh Proxy service
0x1829 Reconnection Configuration service
0x183A Insulin Delivery service
0x183B Binary Sensor service
0x183C Emergency Configuration service
0x183D Authorization Control service
0x183E Physical Activity Monitor service
0x1843 Audio Input Control service
0x1844 Volume Control service
0x1845 Volume Offset Control service
0x1846 Coordinated Set Identification service
0x1847 Device Time service
0x1848 Media Control service
0x1849 Generic Media Control service
0x184A Constant Tone Extension service
0x184B Telephone Bearer service
0x184C Generic Telephone Bearer service
0x184D Microphone Control service
0x184E Audio Stream Control service
0x184F Broadcast Audio Scan service
0x1850 Published Audio Capabilities service
0x1851 Basic Audio Announcement service
0x1852 Broadcast Audio Announcement service
0x1853 Common Audio service
0x1854 Hearing Aid service
0x1855 TMAS service
0x2800 Primary Service
0x2801 Secondary Service
0x2802 Include
0x2803 Characteristic
0x2900 Characteristic Extended Properties
0x2901 Characteristic User Description
0x2902 Client Characteristic Configuration
0x2903 Server Characteristic Configuration
0x2904 Characteristic Presentation Format
0x2905 Characteristic Aggregate Format
0x2906 Valid Range
0x2907 External Report Reference
0x2908 Report Reference
0x2909 Number of Digitals
0x290A Value Trigger Setting
0x290B Environmental Sensing Configuration
0x290C Environmental Sensing Measurement
0x290D Environmental Sensing Trigger Setting
0x290E Time Trigger Setting
0x290F Complete BR-EDR Transport Block Data
0x2A00 Device Name
0x2A01 Appearance
0x2A02 Peripheral Privacy Flag
0x2A03 Reconnection Address
0x2A04 Peripheral Preferred Connection Parameters
0x2A05 Service Changed
0x2A06 Alert Level
0x2A07 Tx Power Level
0x2A08 Date Time
0x2A09 Day of Week
0x2A0A Day Date Time
0x2A0C Exact Time 256
0x2A0D DST Offset
0x2A0E Time Zone
0x2A0F Local Time Information
0x2A11 Time with DST
0x2A12 Time Accuracy
0x2A13 Time Source
0x2A14 Reference Time Information
0x2A16 Time Update Control Point
0x2A17 Time Update State
0x2A18 Glucose Measurement
0x2A19 Battery Level
0x2A1C Temperature Measurement
0x2A1D Temperature Type
0x2A1E Intermediate Temperature
0x2A21 Measurement Interval
0x2A22 Boot Keyboard Input Report
0x2A23 System ID
0x2A24 Model Number String
0x2A25 Serial Number String
0x2A26 Firmware Revision String
0x2A27 Hardware Revision String
0x2A28 Software Revision String
0x2A29 Manufacturer Name String
0x2A2A IEEE 11073-20601 Regulatory Certification Data List
0x2A2B Current Time
0x2A2C Magnetic Declination
0x2A31 Scan Refresh
0x2A32 Boot Keyboard Output Report
0x2A33 Boot Mouse Input Report
0x2A34 Glucose Measurement Context
0x2A35 Blood Pressure Measurement
0x2A36 Intermediate Cuff Pressure
0x2A37 Heart Rate Measurement
0x2A38 Body Sensor Location
0x2A39 Heart Rate Control Point
0x2A3F Alert Status
0x2A40 Ringer Control Point
0x2A41 Ringer Setting
0x2A42 Alert Category ID Bit Mask
0x2A43 Alert Category ID
0x2A44 Alert Notification Control Point
0x2A45 Unread Alert Status
0x2A46 New Alert
0x2A47 Supported New Alert Category
0x2A48 Supported Unread Alert Category
0x2A49 Blood Pressure Feature
0x2A4A HID Information
0x2A4B Report Map
0x2A4C HID Control Point
0x2A4D Report
0x2A4E Protocol Mode
0x2A4F Scan Interval Window
0x2A50 PnP ID
0x2A51 Glucose Feature
0x2A52 Record Access Control Point
0x2A53 RSC Measurement
0x2A54 RSC Feature
0x2A55 SC Control Point
0x2A5A Aggregate
0x2A5B CSC Measurement
0x2A5C CSC Feature
0x2A5D Sensor Location
0x2A5E PLX Spot-Check Measurement
0x2A5F PLX Continuous Measurement
0x2A60 PLX Features
0x2A63 Cycling Power Measurement
0x2A64 Cycling Power Vector
0x2A65 Cycling Power Feature
0x2A66 Cycling Power Control Point
0x2A67 Location and Speed
0x2A68 Navigation
0x2A69 Position Quality
0x2A6A LN Feature
0x2A6B LN Control Point
0x2A6C Elevation
0x2A6D Pressure
0x2A6E Temperature
0x2A6F Humidity
0x2A70 True Wind Speed
0x2A71 True Wind Direction
0x2A72 Apparent Wind Speed
0x2A73 Apparent Wind Direction
0x2A74 Gust Factor
0x2A75 Pollen Concentration
0x2A76 UV Index
0x2A77 Irradiance
0x2A78 Rainfall
0x2A79 Wind Chill
0x2A7A Heat Index
0x2A7B Dew Point
0x2A7D Descriptor Value Changed
0x2A7E Aerobic Heart Rate Lower Limit
0x2A7F Aerobic Threshold
0x2A80 Age
0x2A81 Anaerobic Heart Rate Lower Limit
0x2A82 Anaerobic Heart Rate Upper Limit
0x2A83 Anaerobic Threshold
0x2A84 Aerobic Heart Rate Upper Limit
0x2A85 Date of Birth
0x2A86 Date of Threshold Assessment
0x2A87 Email Address
0x2A88 Fat Burn Heart Rate Lower Limit
0x2A89 Fat Burn Heart Rate Upper Limit
0x2A8A First Name
0x2A8B Five Zone Heart Rate Limits
0x2A8C Gender
0x2A8D Heart Rate Max
0x2A8E Height
0x2A8F Hip Circumference
0x2A90 Last Name
0x2A91 Maximum Recommended Heart Rate
0x2A92 Resting Heart Rate
0x2A93 Sport Type for Aerobic and Anaerobic Thresholds
0x2A94 Three Zone Heart Rate Limits
0x2A95 Two Zone Heart Rate Limits
0x2A96 VO2 Max
0x2A97 Waist Circumference
0x2A98 Weight
0x2A99 Database Change Increment
0x2A9A User Index
0x2A9B Body Composition Feature
0x2A9C Body Composition Measurement
0x2A9D Weight Measurement
0x2A9E Weight Scale Feature
0x2A9F User Control Point
0x2AA0 Magnetic Flux Density - 2D
0x2AA1 Magnetic Flux Density - 3D
0x2AA2 Language
0x2AA3 Barometric Pressure Trend
0x2AA4 Bond Management Control Point
0x2AA5 Bond Management Feature
0x2AA6 Central Address Resolution
0x2AA7 CGM Measurement
0x2AA8 CGM Feature
0x2AA9 CGM Status
0x2AAA CGM Session Start Time
0x2AAB CGM Session Run Time
0x2AAC CGM Specific Ops Control Point
0x2AAD Indoor Positioning Configuration
0x2AAE Latitude
0x2AAF Longitude
0x2AB0 Local North Coordinate
0x2AB1 Local East Coordinate
0x2AB2 Floor Number
0x2AB3 Altitude
0x2AB4 Uncertainty
0x2AB5 Location Name
0x2AB6 URI
0x2AB7 HTTP Headers
0x2AB8 HTTP Status Code
0x2AB9 HTTP Entity Body
0x2ABA HTTP Control Point
0x2ABB HTTPS Security
0x2ABC TDS Control Point
0x2ABD OTS Feature
0x2ABE Object Name
0x2ABF Object Type
0x2AC0 Object Size
0x2AC1 Object First-Created
0x2AC2 Object Last-Modified
0x2AC3 Object ID
0x2AC4 Object Properties
0x2AC5 Object Action Control Point
0x2AC6 Object List Control Point
0x2AC7 Object List Filter
0x2AC8 Object Changed
0x2AC9 Resolvable Private Address Only
0x2ACC Fitness Machine Feature
0x2ACD Treadmill Data
0x2ACE Cross Trainer Data
0x2ACF Step Climber Data
0x2AD0 Stair Climber Data
0x2AD1 Rower Data
0x2AD2 Indoor Bike Data
0x2AD3 Training Status
0x2AD4 Supported Speed Range
0x2AD5 Supported Inclination Range
0x2AD6 Supported Resistance Level Range
0x2AD7 Supported Heart Rate Range
0x2AD8 Supported Power Range
0x2AD9 Fitness Machine Control Point
0x2ADA Fitness Machine Status
0x2ADB Mesh Provisioning Data In
0x2ADC Mesh Provisioning Data Out
0x2ADD Mesh Proxy Data In
0x2ADE Mesh Proxy Data Out
0x2AE0 Average Current
0x2AE1 Average Voltage
0x2AE2 Boolean
0x2AE3 Chromatic Distance from Planckian
0x2AE4 Chromaticity Coordinates
0x2AE5 Chromaticity in CCT and Duv Values
0x2AE6 Chromaticity Tolerance
0x2AE7 CIE 13.3-1995 Color Rendering Index
0x2AE8 Coefficient
0x2AE9 Correlated Color Temperature
0x2AEA Count 16
0x2AEB Count 24
0x2AEC Country Code
0x2AED Date UTC
0x2AEE Electric Current
0x2AEF Electric Current Range
0x2AF0 Electric Current Specification
0x2AF1 Electric Current Statistics
0x2AF2 Energy
0x2AF3 Energy in a Period of Day
0x2AF4 Event Statistics
0x2AF5 Fixed String 16
0x2AF6 Fixed String 24
0x2AF7 Fixed String 36
0x2AF8 Fixed String 8
0x2AF9 Generic Level
0x2AFA Global Trade Item Number
0x2AFB Illuminance
0x2AFC Luminous Efficacy
0x2AFD Luminous Energy
0x2AFE Luminous Exposure
0x2AFF Luminous Flux
0x2B00 Luminous Flux Range
0x2B01 Luminous Intensity
0x2B02 Mass Flow
0x2B03 Perceived Lightness
0x2B04 Percentage 8
0x2B05 Power
0x2B06 Power Specification
0x2B07 Relative Runtime in a Current Range
0x2B08 Relative Runtime in a Generic Level Range
0x2B09 Relative Value in a Voltage Range
0x2B0A Relative Value in an Illuminance Range
0x2B0B Relative Value in a Period of Day
0x2B0C Relative Value in a Temperature Range
0x2B0D Temperature 8
0x2B0E Temperature 8 in a Period of Day
0x2B0F Temperature 8 Statistics
0x2B10 Temperature Range
0x2B11 Temperature Statistics
0x2B12 Time Decihour 8
0x2B13 Time Exponential 8
0x2B14 Time Hour 24
0x2B15 Time Millisecond 24
0x2B16 Time Second 16
0x2B17 Time Second 8
0x2B18 Voltage
0x2B19 Voltage Specification
0x2B1A Voltage Statistics
0x2B1B Volume Flow
0x2B1C Chromaticity Coordinate
0x2B1D RC Feature
0x2B1E RC Settings
0x2B1F Reconnection Configuration Control Point
0x2B20 IDD Status Changed
0x2B21 IDD Status
0x2B22 IDD Annunciation Status
0x2B23 IDD Features
0x2B24 IDD Status Reader Control Point
0x2B25 IDD Command Control Point
0x2B26 IDD Command Data
0x2B27 IDD Record Access Control Point
0x2B28 IDD History Data
0x2B29 Client Supported Features
0x2B2A Database Hash
0x2B2B BSS Control Point
0x2B2C BSS Response
0x2B2D Emergency ID
0x2B2E Emergency Text
0x2B2F ACS Status
0x2B30 ACS Data In
0x2B31 ACS Data Out Notify
0x2B32 ACS Data Out Indicate
0x2B33 ACS Control Point
0x2B34 Enhanced Blood Pressure Measurement
0x2B35 Enhanced Intermediate Cuff Pressure
0x2B36 Blood Pressure Record
0x2B37 Registered User
0x2B38 BR-EDR Handover Data
0x2B39 Bluetooth SIG Data
0x2B3A Server Supported Features
0x2B3B Physical Activity Monitor Features
0x2B3C General Activity Instantaneous Data
0x2B3D General Activity Summary Data
0x2B3E CardioRespiratory Activity Instantaneous Data
0x2B3F CardioRespiratory Activity Summary Data
0x2B40 Step Counter Activity Summary Data
0x2B41 Sleep Activity Instantaneous Data
0x2B42 Sleep Activity Summary Data
0x2B43 Physical Activity Monitor Control Point
0x2B44 Activity Current Session
0x2B45 Physical Activity Session Descriptor
0x2B46 Preferred Units
0x2B47 High Resolution Height
0x2B48 Middle Name
0x2B49 Stride Length
0x2B4A Handedness
0x2B4B Device Wearing Position
0x2B4C Four Zone Heart Rate Limits
0x2B4D High Intensity Exercise Threshold
0x2B4E Activity Goal
0x2B4F Sedentary Interval Notification
0x2B50 Caloric Intake
0x2B51 TMAP Role
0x2B77 Audio Input State
0x2B78 Gain Settings Attribute
0x2B79 Audio Input Type
0x2B7A Audio Input Status
0x2B7B Audio Input Control Point
0x2B7C Audio Input Description
0x2B7D Volume State
0x2B7E Volume Control Point
0x2B7F Volume Flags
0x2B80 Volume Offset State
0x2B81 Audio Location
0x2B82 Volume Offset Control Point
0x2B83 Audio Output Description
0x2B84 Set Identity Resolving Key
0x2B85 Coordinated Set Size
0x2B86 Set Member Lock
0x2B87 Set Member Rank
0x2B89 Apparent Energy 32
0x2B8A Apparent Power
0x2B8C CO2 Concentration
0x2B8D Cosine of the Angle
0x2B8E Device Time Feature
0x2B8F Device Time Parameters
0x2B90 Device Time
0x2B91 Device Time Control Point
0x2B92 Time Change Log Data
0x2B93 Media Player Name
0x2B94 Media Player Icon Object ID
0x2B95 Media Player Icon URL
0x2B96 Track Changed
0x2B97 Track Title
0x2B98 Track Duration
0x2B99 Track Position
0x2B9A Playback Speed
0x2B9B Seeking Speed
0x2B9C Current Track Segments Object ID
0x2B9D Current Track Object ID
0x2B9E Next Track Object ID
0x2B9F Parent Group Object ID
0x2BA0 Current Group Object ID
0x2BA1 Playing Order
0x2BA2 Playing Orders Supported
0x2BA3 Media State
0x2BA4 Media Control Point
0x2BA5 Media Control Point Opcodes Supported
0x2BA6 Search Results Object ID
0x2BA7 Search Control Point
0x2BA8 Energy 32
0x2BA9 Media Player Icon Object Type
0x2BAA Track Segments Object Type
0x2BAB Track Object Type
0x2BAC Group Object Type
0x2BAD Constant Tone Extension Enable
0x2BAE Advertising Constant Tone Extension Minimum Length
0x2BAF Advertising Constant Tone Extension Minimum Transmit Count
0x2BB0 Advertising Constant Tone Extension Transmit Duration
0x2BB1 Advertising Constant Tone Extension Interval
0x2BB2 Advertising Constant Tone Extension PHY
0x2BB3 Bearer Provider Name
0x2BB4 Bearer UCI
0x2BB5 Bearer Technology
0x2BB6 Bearer URI Schemes Supported List
0x2BB7 Bearer Signal Strength
0x2BB8 Bearer Signal Strength Reporting Interval
0x2BB9 Bearer List Current Calls
0x2BBA Content Control ID
0x2BBB Status Flags
0x2BBC Incoming Call Target Bearer URI
0x2BBD Call State
0x2BBE Call Control Point
0x2BBF Call Control Point Optional Opcodes
0x2BC0 Termination Reason
0x2BC1 Incoming Call
0x2BC2 Call Friendly Name
0x2BC3 Mute
0x2BC4 Sink ASE
0x2BC5 Source ASE
0x2BC6 ASE Control Point
0x2BC7 Broadcast Audio Scan Control Point
0x2BC8 Broadcast Receive State
0x2BC9 Sink PAC
0x2BCA Sink Audio Locations
0x2BCB Source PAC
0x2BCC Source Audio Locations
0x2BCD Available Audio Contexts
0x2BCE Supported Audio Contexts
0x2BCF Ammonia Concentration
0x2BD0 Carbon Monoxide Concentration
0x2BD1 Methane Concentration
0x2BD2 Nitrogen Dioxide Concentration
0x2BD3 Non-Methane Volatile Organic Compounds Concentration
0x2BD4 Ozone Concentration
0x2BD5 Particulate Matter - PM1 Concentration
0x2BD6 Particulate Matter - PM2.5 Concentration
0x2BD7 Particulate Matter - PM10 Concentration
0x2BD8 Sulfur Dioxide Concentration
0x2BD9 Sulfur Hexafluoride Concentration
0x2BDA Hearing Aid Features
0x2BDB Hearing Aid Preset Control Point
0x2BDC Active Preset Index
0x2BDE Fixed String 64
0x2BDF High Temperature
0x2BE0 High Voltage
0x2BE1 Light Distribution
0x2BE2 Light Output
0x2BE3 Light Source Type
0x2BE4 Noise
0x2BE5 Relative Runtime in a Correlated Color Temperature Range
0x2BE6 Time Second 32
0x2BE7 VOC Concentration
0x2BE8 Voltage Frequency
*/
#ifdef __cplusplus
}
#endif
#endif