static RegisteredAttributes() { s_known.AddAdoptedCharacteristics(); s_known.AddAdoptedDescriptors(); s_known.AddAdoptedServices(); s_known.AddService( new Guid("00001530-1212-efde-1523-785feabcd123"), "Nordic Device Firmware Update Service"); s_known.AddService( new Guid("0000ffe0-0000-1000-8000-00805f9b34fb"), "Test Unknown"); s_known.AddCharacteristic( new Guid("0000ffe1-0000-1000-8000-00805f9b34fb"), "Test Unknown"); AddTiService(0xaa00, "Infrared Thermometer"); AddTiService(0xaa10, "Accelerometer"); AddTiService(0xaa20, "Humidity"); AddTiService(0xaa30, "Magnometer"); AddTiService(0xaa40, "Barometer"); AddTiService(0xaa50, "Gyroscope"); AddTiService(0xaa60, "Test"); AddTiService(0xccc0, "Connection Control"); AddTiService(0xffc0, "OvertheAir Download"); AddTiChar(0xaa01, "Infrared Temperature Data"); AddTiChar(0xaa02, "Infrared Temperature On/Off"); AddTiChar(0xaa03, "Infrared Temperature Sample Rate"); AddTiChar(0xaa11, "Accelerometer Data"); AddTiChar(0xaa12, "Accelerometer On/Off"); AddTiChar(0xaa13, "Accelerometer Sample Rate"); AddTiChar(0xaa21, "Humidity Data"); AddTiChar(0xaa22, "Humidity On/Off"); AddTiChar(0xaa23, "Humidity Sample Rate"); AddTiChar(0xaa31, "Magnometer Data"); AddTiChar(0xaa32, "Magnometer On/Off"); AddTiChar(0xaa33, "Magnometer Sample Rate"); AddTiChar(0xaa41, "Barometer Data"); AddTiChar(0xaa42, "Barometer On/Off"); AddTiChar(0xaa43, "Barometer Calibration"); AddTiChar(0xaa44, "Barometer Sample Rate"); AddTiChar(0xaa51, "Gyroscope Data"); AddTiChar(0xaa52, "Gyroscope On/Off"); AddTiChar(0xaa53, "Gyroscope Sample Rate"); AddTiChar(0xaa61, "Test Data"); AddTiChar(0xaa62, "Test Configuration"); AddTiChar(0xccc1, "Connection Parameters"); AddTiChar(0xccc2, "Connection Request Parameters"); AddTiChar(0xccc3, "Connection Request Disconnect"); AddTiChar(0xffc1, "OAD Image Identify"); AddTiChar(0xffc2, "OAD Image Block"); }
private static void AddTiChar(UInt16 key, String name) { s_known.AddCharacteristic(TiKey(key), DEVICE + " " + name); }
/// <summary> /// Add the Bluetooth SIG adopted characteristics to <paramref name="attributes" /> /// <remarks> /// <see href="https://www.bluetooth.com/specifications/gatt/characteristics" /> /// </remarks> /// </summary> public static void AddTo(KnownAttributes attributes) { attributes.AddCharacteristic(0x2a43, "Alert Category ID"); attributes.AddCharacteristic(0x2a42, "Alert Category ID Bit Mask"); attributes.AddCharacteristic(0x2a06, "Alert Level"); attributes.AddCharacteristic(0x2a44, "Alert Notification Control Point"); attributes.AddCharacteristic(0x2a3f, "Alert Status"); attributes.AddCharacteristic(0x2a01, "Appearance"); attributes.AddCharacteristic(0x2a19, "Battery Level"); attributes.AddCharacteristic(0x2a49, "Blood Pressure Feature"); attributes.AddCharacteristic(0x2a35, "Blood Pressure Measurement"); attributes.AddCharacteristic(0x2a38, "Body Sensor Location"); attributes.AddCharacteristic(0x2a22, "Boot Keyboard Input Report"); attributes.AddCharacteristic(0x2a32, "Boot Keyboard Output Report"); attributes.AddCharacteristic(0x2a33, "Boot Mouse Input Report"); attributes.AddCharacteristic(0x2a5c, "CSC Feature"); attributes.AddCharacteristic(0x2a5b, "CSC Measurement"); attributes.AddCharacteristic(0x2a2b, "Current Time"); attributes.AddCharacteristic(0x2a66, "Cycling Power Control Point"); attributes.AddCharacteristic(0x2a65, "Cycling Power Feature"); attributes.AddCharacteristic(0x2a63, "Cycling Power Measurement"); attributes.AddCharacteristic(0x2a64, "Cycling Power Vector"); attributes.AddCharacteristic(0x2a08, "Date Time"); attributes.AddCharacteristic(0x2a0a, "Day Date Time"); attributes.AddCharacteristic(0x2a09, "Day of Week"); attributes.AddCharacteristic(0x2a00, "Device Name"); attributes.AddCharacteristic(0x2a0d, "DST Offset"); attributes.AddCharacteristic(0x2a0c, "Exact Time 256"); attributes.AddCharacteristic(0x2a26, "Firmware Revision String"); attributes.AddCharacteristic(0x2a51, "Glucose Feature"); attributes.AddCharacteristic(0x2a18, "Glucose Measurement"); attributes.AddCharacteristic(0x2a34, "Glucose Measure Context"); attributes.AddCharacteristic(0x2a27, "Hardware Revision String"); attributes.AddCharacteristic(0x2a39, "Heart Rate Control Point"); attributes.AddCharacteristic(0x2a37, "Heart Rate Measurement"); attributes.AddCharacteristic(0x2a4c, "HID Control Point"); attributes.AddCharacteristic(0x2a4a, "HID Information"); attributes.AddCharacteristic(0x2a36, "Intermediate Cuff Pressure"); attributes.AddCharacteristic(0x2a1e, "Intermediate Temperature"); attributes.AddCharacteristic(0x2a6b, "LN Control Point"); attributes.AddCharacteristic(0x2a6a, "LN Feature"); attributes.AddCharacteristic(0x2a0f, "Local Time Information"); attributes.AddCharacteristic(0x2a67, "Location And Speed"); attributes.AddCharacteristic(0x2a29, "Manufacturer Name String"); attributes.AddCharacteristic(0x2a21, "Measurement Interval"); attributes.AddCharacteristic(0x2a24, "Model Number String"); attributes.AddCharacteristic(0x2a68, "Navigation"); attributes.AddCharacteristic(0x2a46, "New Alert"); attributes.AddCharacteristic(0x2a04, "Peripheral Preferred Connection Parameters"); attributes.AddCharacteristic(0x2a02, "Peripheral Privacy Flag"); attributes.AddCharacteristic(0x2a50, "PnP ID"); attributes.AddCharacteristic(0x2a69, "Position Quality"); attributes.AddCharacteristic(0x2a4e, "Protocol Mode"); attributes.AddCharacteristic(0x2a03, "Reconnection Address"); attributes.AddCharacteristic(0x2a52, "Record Access Control Point"); attributes.AddCharacteristic(0x2a14, "Reference Time Information"); attributes.AddCharacteristic(0x2a4d, "Report"); attributes.AddCharacteristic(0x2a4b, "Report Map"); attributes.AddCharacteristic(0x2a40, "Ringer Control Point"); attributes.AddCharacteristic(0x2a41, "Ringer Setting"); attributes.AddCharacteristic(0x2a54, "RSC Feature"); attributes.AddCharacteristic(0x2a53, "RSC Measurement"); attributes.AddCharacteristic(0x2a55, "SC Control Point"); attributes.AddCharacteristic(0x2a4f, "Scan Interval Window"); attributes.AddCharacteristic(0x2a31, "Scan Refresh"); attributes.AddCharacteristic(0x2a5d, "Sensor Location"); attributes.AddCharacteristic(0x2a25, "Serial Number String"); attributes.AddCharacteristic(0x2a05, "Service Changed"); attributes.AddCharacteristic(0x2a28, "Software Revision String"); attributes.AddCharacteristic(0x2a47, "Supported New Alert Category"); attributes.AddCharacteristic(0x2a48, "Supported Unread Alert Category"); attributes.AddCharacteristic(0x2a23, "System ID"); attributes.AddCharacteristic(0x2a1c, "Temperature Measurement"); attributes.AddCharacteristic(0x2a1d, "Temperature Type"); attributes.AddCharacteristic(0x2a12, "Time Accuracy"); attributes.AddCharacteristic(0x2a13, "Time Source"); attributes.AddCharacteristic(0x2a16, "Time Update Control Point"); attributes.AddCharacteristic(0x2a17, "Time Update State"); attributes.AddCharacteristic(0x2a11, "Time with DST"); attributes.AddCharacteristic(0x2a0e, "Time Zone"); attributes.AddCharacteristic(0x2a07, "Tx Power Level"); attributes.AddCharacteristic(0x2a45, "Unread Alert Status"); attributes.AddCharacteristic(0x2a7e, "Aerobic Heart Rate Lower Limit"); attributes.AddCharacteristic(0x2a84, "Aerobic Heart Rate Uppoer Limit"); attributes.AddCharacteristic(0x2a80, "Age"); attributes.AddCharacteristic(0x2a5a, "Aggregate Input"); attributes.AddCharacteristic(0x2a81, "Anaerobic Heart Rate Lower Limit"); attributes.AddCharacteristic(0x2a82, "Anaerobic Heart Rate Upper Limit"); attributes.AddCharacteristic(0x2a83, "Anaerobic Threshold"); attributes.AddCharacteristic(0x2a58, "Analog"); attributes.AddCharacteristic(0x2a73, "Apparent Wind Direction"); attributes.AddCharacteristic(0x2a72, "Apparent Wind Speed"); attributes.AddCharacteristic(0x2a9b, "Body Composition Feature"); attributes.AddCharacteristic(0x2a9c, "Body Composition Measurement"); attributes.AddCharacteristic(0x2a99, "Database Change Increment"); attributes.AddCharacteristic(0x2a85, "Date of Birth"); attributes.AddCharacteristic(0x2a86, "Date of Threshold Assessment"); attributes.AddCharacteristic(0x2a7d, "Descriptor Value Changed"); attributes.AddCharacteristic(0x2a7b, "Dew Point"); attributes.AddCharacteristic(0x2a56, "Digital Input"); attributes.AddCharacteristic(0x2a57, "Digital Output"); attributes.AddCharacteristic(0x2a6c, "Elevation"); attributes.AddCharacteristic(0x2a87, "Email Address"); attributes.AddCharacteristic(0x2a0b, "Exact Time 100"); attributes.AddCharacteristic(0x2a88, "Fat Burn Heart Rate Lower Limit"); attributes.AddCharacteristic(0x2a89, "Fat Burn Heart Rate Upper Limit"); attributes.AddCharacteristic(0x2a8a, "First Name"); attributes.AddCharacteristic(0x2a8b, "Five Zone Heart Rate Limits"); attributes.AddCharacteristic(0x2a8c, "Gender"); attributes.AddCharacteristic(0x2a74, "Gust Factor"); attributes.AddCharacteristic(0x2a8d, "Heart Rate Max"); attributes.AddCharacteristic(0x2a7a, "Heat Index"); attributes.AddCharacteristic(0x2a8e, "Height"); attributes.AddCharacteristic(0x2a8f, "Hip Circumference"); attributes.AddCharacteristic(0x2a6f, "Humidity"); attributes.AddCharacteristic(0x2a77, "Irradiance"); attributes.AddCharacteristic(0x2a90, "Last Name"); attributes.AddCharacteristic(0x2a91, "Maximum Recommended Heart Rate"); attributes.AddCharacteristic(0x2a3e, "Network Availability"); attributes.AddCharacteristic(0x2a75, "Pollen Concentration"); attributes.AddCharacteristic(0x2a6d, "Pressure"); attributes.AddCharacteristic(0x2a78, "Rainfall"); attributes.AddCharacteristic(0x2a92, "Resting Heart Rate"); attributes.AddCharacteristic(0x2a3c, "Scientific Temperature in Celsius"); attributes.AddCharacteristic(0x2a10, "Secondary Time Zone"); attributes.AddCharacteristic(0x2a93, "Sport Type for Aerobic and Anaerobic Thresholds"); attributes.AddCharacteristic(0x2a3d, "String"); attributes.AddCharacteristic(0x2a6e, "Temperature"); attributes.AddCharacteristic(0x2a1f, "Temperature in Celsius"); attributes.AddCharacteristic(0x2a20, "Temperature in Fahrenheit"); attributes.AddCharacteristic(0x2a94, "Three Zone Heart Rate Limits"); attributes.AddCharacteristic(0x2a15, "Time Broadcast"); attributes.AddCharacteristic(0x2a7c, "Trend"); attributes.AddCharacteristic(0x2a71, "True Wind Direction"); attributes.AddCharacteristic(0x2a70, "True Wind Speed"); attributes.AddCharacteristic(0x2a95, "Two Zone Heart Rate Limit"); attributes.AddCharacteristic(0x2a9f, "User Control Point"); attributes.AddCharacteristic(0x2a9a, "User Index"); attributes.AddCharacteristic(0x2a76, "UV Index"); attributes.AddCharacteristic(0x2a96, "VO2 Max"); attributes.AddCharacteristic(0x2a97, "Waist Circumference"); attributes.AddCharacteristic(0x2a98, "Weight"); attributes.AddCharacteristic(0x2a9d, "Weight Measurement"); attributes.AddCharacteristic(0x2a9e, "Weight Scale Feature"); attributes.AddCharacteristic(0x2a79, "Wind Chill"); attributes.AddCharacteristic(0x2a1b, "Battery Level State"); attributes.AddCharacteristic(0x2a1a, "Battery Power State"); attributes.AddCharacteristic(0x2a2d, "Latitude"); attributes.AddCharacteristic(0x2a2e, "Longitude"); attributes.AddCharacteristic(0x2a2f, "Position 2D"); attributes.AddCharacteristic(0x2a30, "Position 3D"); attributes.AddCharacteristic(0x2a5f, "Pulse Oximetry Continuous Measurement"); attributes.AddCharacteristic(0x2a62, "Pulse Oximetry Control Point"); attributes.AddCharacteristic(0x2a61, "Pulse Oximetry Features"); attributes.AddCharacteristic(0x2a60, "Pulse Oximetry Pulsatile Event"); attributes.AddCharacteristic(0x2a5e, "Pulse Oximetry Spot-Check Measurement"); attributes.AddCharacteristic(0x2a3a, "Removable"); attributes.AddCharacteristic(0x2a3b, "Service Required"); }
/// <summary> /// Add the Bluetooth SIG adopted characteristics to <paramref name="attributes" /> /// <remarks> /// <see href="https://www.bluetooth.com/specifications/gatt/characteristics" /> /// </remarks> /// </summary> public static void AddTo(KnownAttributes attributes) { attributes.AddCharacteristic(0x2A7E, "Aerobic Heart Rate Lower Limit"); attributes.AddCharacteristic(0x2A84, "Aerobic Heart Rate Upper Limit"); attributes.AddCharacteristic(0x2A7F, "Aerobic Threshold"); attributes.AddCharacteristic(0x2A80, "Age"); attributes.AddCharacteristic(0x2A5A, "Aggregate"); attributes.AddCharacteristic(0x2A43, "Alert Category ID"); attributes.AddCharacteristic(0x2A42, "Alert Category ID Bit Mask"); attributes.AddCharacteristic(0x2A06, "Alert Level"); attributes.AddCharacteristic(0x2A44, "Alert Notification Control Point"); attributes.AddCharacteristic(0x2A3F, "Alert Status"); attributes.AddCharacteristic(0x2AB3, "Altitude"); attributes.AddCharacteristic(0x2A81, "Anaerobic Heart Rate Lower Limit"); attributes.AddCharacteristic(0x2A82, "Anaerobic Heart Rate Upper Limit"); attributes.AddCharacteristic(0x2A83, "Anaerobic Threshold"); attributes.AddCharacteristic(0x2A58, "Analog"); attributes.AddCharacteristic(0x2A59, "Analog Output"); attributes.AddCharacteristic(0x2A73, "Apparent Wind Direction"); attributes.AddCharacteristic(0x2A72, "Apparent Wind Speed"); attributes.AddCharacteristic(0x2A01, "Appearance"); attributes.AddCharacteristic(0x2AA3, "Barometric Pressure Trend"); attributes.AddCharacteristic(0x2A19, "Battery Level"); attributes.AddCharacteristic(0x2A1B, "Battery Level State"); attributes.AddCharacteristic(0x2A1A, "Battery Power State"); attributes.AddCharacteristic(0x2A49, "Blood Pressure Feature"); attributes.AddCharacteristic(0x2A35, "Blood Pressure Measurement"); attributes.AddCharacteristic(0x2A9B, "Body Composition Feature"); attributes.AddCharacteristic(0x2A9C, "Body Composition Measurement"); attributes.AddCharacteristic(0x2A38, "Body Sensor Location"); attributes.AddCharacteristic(0x2AA4, "Bond Management Control Point"); attributes.AddCharacteristic(0x2AA5, "Bond Management Features"); attributes.AddCharacteristic(0x2A22, "Boot Keyboard Input Report"); attributes.AddCharacteristic(0x2A32, "Boot Keyboard Output Report"); attributes.AddCharacteristic(0x2A33, "Boot Mouse Input Report"); attributes.AddCharacteristic(0x2AA6, "Central Address Resolution"); attributes.AddCharacteristic(0x2AA8, "CGM Feature"); attributes.AddCharacteristic(0x2AA7, "CGM Measurement"); attributes.AddCharacteristic(0x2AAB, "CGM Session Run Time"); attributes.AddCharacteristic(0x2AAA, "CGM Session Start Time"); attributes.AddCharacteristic(0x2AAC, "CGM Specific Ops Control Point"); attributes.AddCharacteristic(0x2AA9, "CGM Status"); attributes.AddCharacteristic(0x2ACE, "Cross Trainer Data"); attributes.AddCharacteristic(0x2A5C, "CSC Feature"); attributes.AddCharacteristic(0x2A5B, "CSC Measurement"); attributes.AddCharacteristic(0x2A2B, "Current Time"); attributes.AddCharacteristic(0x2A66, "Cycling Power Control Point"); attributes.AddCharacteristic(0x2A65, "Cycling Power Feature"); attributes.AddCharacteristic(0x2A63, "Cycling Power Measurement"); attributes.AddCharacteristic(0x2A64, "Cycling Power Vector"); attributes.AddCharacteristic(0x2A99, "Database Change Increment"); attributes.AddCharacteristic(0x2A85, "Date of Birth"); attributes.AddCharacteristic(0x2A86, "Date of Threshold Assessment"); attributes.AddCharacteristic(0x2A08, "Date Time"); attributes.AddCharacteristic(0x2A0A, "Day Date Time"); attributes.AddCharacteristic(0x2A09, "Day of Week"); attributes.AddCharacteristic(0x2A7D, "Descriptor Value Changed"); attributes.AddCharacteristic(0x2A00, "Device Name"); attributes.AddCharacteristic(0x2A7B, "Dew Point"); attributes.AddCharacteristic(0x2A56, "Digital"); attributes.AddCharacteristic(0x2A57, "Digital Output"); attributes.AddCharacteristic(0x2A0D, "DST Offset"); attributes.AddCharacteristic(0x2A6C, "Elevation"); attributes.AddCharacteristic(0x2A87, "Email Address"); attributes.AddCharacteristic(0x2A0B, "Exact Time 100"); attributes.AddCharacteristic(0x2A0C, "Exact Time 256"); attributes.AddCharacteristic(0x2A88, "Fat Burn Heart Rate Lower Limit"); attributes.AddCharacteristic(0x2A89, "Fat Burn Heart Rate Upper Limit"); attributes.AddCharacteristic(0x2A26, "Firmware Revision String"); attributes.AddCharacteristic(0x2A8A, "First Name"); attributes.AddCharacteristic(0x2AD9, "Fitness Machine Control Point"); attributes.AddCharacteristic(0x2ACC, "Fitness Machine Feature"); attributes.AddCharacteristic(0x2ADA, "Fitness Machine Status"); attributes.AddCharacteristic(0x2A8B, "Five Zone Heart Rate Limits"); attributes.AddCharacteristic(0x2AB2, "Floor Number"); attributes.AddCharacteristic(0x2A8C, "Gender"); attributes.AddCharacteristic(0x2A51, "Glucose Feature"); attributes.AddCharacteristic(0x2A18, "Glucose Measurement"); attributes.AddCharacteristic(0x2A34, "Glucose Measurement Context"); attributes.AddCharacteristic(0x2A74, "Gust Factor"); attributes.AddCharacteristic(0x2A27, "Hardware Revision String"); attributes.AddCharacteristic(0x2A39, "Heart Rate Control Point"); attributes.AddCharacteristic(0x2A8D, "Heart Rate Max"); attributes.AddCharacteristic(0x2A37, "Heart Rate Measurement"); attributes.AddCharacteristic(0x2A7A, "Heat Index"); attributes.AddCharacteristic(0x2A8E, "Height"); attributes.AddCharacteristic(0x2A4C, "HID Control Point"); attributes.AddCharacteristic(0x2A4A, "HID Information"); attributes.AddCharacteristic(0x2A8F, "Hip Circumference"); attributes.AddCharacteristic(0x2ABA, "HTTP Control Point"); attributes.AddCharacteristic(0x2AB9, "HTTP Entity Body"); attributes.AddCharacteristic(0x2AB7, "HTTP Headers"); attributes.AddCharacteristic(0x2AB8, "HTTP Status Code"); attributes.AddCharacteristic(0x2ABB, "HTTPS Security"); attributes.AddCharacteristic(0x2A6F, "Humidity"); attributes.AddCharacteristic(0x2A2A, "IEEE 11073-20601 Regulatory Certification Data List"); attributes.AddCharacteristic(0x2AD2, "Indoor Bike Data"); attributes.AddCharacteristic(0x2AAD, "Indoor Positioning Configuration"); attributes.AddCharacteristic(0x2A36, "Intermediate Cuff Pressure"); attributes.AddCharacteristic(0x2A1E, "Intermediate Temperature"); attributes.AddCharacteristic(0x2A77, "Irradiance"); attributes.AddCharacteristic(0x2AA2, "Language"); attributes.AddCharacteristic(0x2A90, "Last Name"); attributes.AddCharacteristic(0x2AAE, "Latitude"); attributes.AddCharacteristic(0x2A6B, "LN Control Point"); attributes.AddCharacteristic(0x2A6A, "LN Feature"); attributes.AddCharacteristic(0x2AB1, "Local East Coordinate"); attributes.AddCharacteristic(0x2AB0, "Local North Coordinate"); attributes.AddCharacteristic(0x2A0F, "Local Time Information"); attributes.AddCharacteristic(0x2A67, "Location and Speed Characteristic"); attributes.AddCharacteristic(0x2AB5, "Location Name"); attributes.AddCharacteristic(0x2AAF, "Longitude"); attributes.AddCharacteristic(0x2A2C, "Magnetic Declination"); attributes.AddCharacteristic(0x2AA0, "Magnetic Flux Density - 2D"); attributes.AddCharacteristic(0x2AA1, "Magnetic Flux Density - 3D"); attributes.AddCharacteristic(0x2A29, "Manufacturer Name String"); attributes.AddCharacteristic(0x2A91, "Maximum Recommended Heart Rate"); attributes.AddCharacteristic(0x2A21, "Measurement Interval"); attributes.AddCharacteristic(0x2A24, "Model Number String"); attributes.AddCharacteristic(0x2A68, "Navigation"); attributes.AddCharacteristic(0x2A3E, "Network Availability"); attributes.AddCharacteristic(0x2A46, "New Alert"); attributes.AddCharacteristic(0x2AC5, "Object Action Control Point"); attributes.AddCharacteristic(0x2AC8, "Object Changed"); attributes.AddCharacteristic(0x2AC1, "Object First-Created"); attributes.AddCharacteristic(0x2AC3, "Object ID"); attributes.AddCharacteristic(0x2AC2, "Object Last-Modified"); attributes.AddCharacteristic(0x2AC6, "Object List Control Point"); attributes.AddCharacteristic(0x2AC7, "Object List Filter"); attributes.AddCharacteristic(0x2ABE, "Object Name"); attributes.AddCharacteristic(0x2AC4, "Object Properties"); attributes.AddCharacteristic(0x2AC0, "Object Size"); attributes.AddCharacteristic(0x2ABF, "Object Type"); attributes.AddCharacteristic(0x2ABD, "OTS Feature"); attributes.AddCharacteristic(0x2A04, "Peripheral Preferred Connection Parameters"); attributes.AddCharacteristic(0x2A02, "Peripheral Privacy Flag"); attributes.AddCharacteristic(0x2A5F, "PLX Continuous Measurement Characteristic"); attributes.AddCharacteristic(0x2A5E, "PLX Spot-Check Measurement"); attributes.AddCharacteristic(0x2A50, "PnP ID"); attributes.AddCharacteristic(0x2A75, "Pollen Concentration"); attributes.AddCharacteristic(0x2A2F, "Position 2D"); attributes.AddCharacteristic(0x2A30, "Position 3D"); attributes.AddCharacteristic(0x2A69, "Position Quality"); attributes.AddCharacteristic(0x2A6D, "Pressure"); attributes.AddCharacteristic(0x2A4E, "Protocol Mode"); attributes.AddCharacteristic(0x2A62, "Pulse Oximetry Control Point"); attributes.AddCharacteristic(0x2A60, "Pulse Oximetry Pulsatile Event Characteristic"); attributes.AddCharacteristic(0x2A78, "Rainfall"); attributes.AddCharacteristic(0x2A03, "Reconnection Address"); attributes.AddCharacteristic(0x2A52, "Record Access Control Point"); attributes.AddCharacteristic(0x2A14, "Reference Time Information"); attributes.AddCharacteristic(0x2A3A, "Removable"); attributes.AddCharacteristic(0x2A4D, "Report"); attributes.AddCharacteristic(0x2A4B, "Report Map"); attributes.AddCharacteristic(0x2AC9, "Resolvable Private Address Only"); attributes.AddCharacteristic(0x2A92, "Resting Heart Rate"); attributes.AddCharacteristic(0x2A40, "Ringer Control point"); attributes.AddCharacteristic(0x2A41, "Ringer Setting"); attributes.AddCharacteristic(0x2AD1, "Rower Data"); attributes.AddCharacteristic(0x2A54, "RSC Feature"); attributes.AddCharacteristic(0x2A53, "RSC Measurement"); attributes.AddCharacteristic(0x2A55, "SC Control Point"); attributes.AddCharacteristic(0x2A4F, "Scan Interval Window"); attributes.AddCharacteristic(0x2A31, "Scan Refresh"); attributes.AddCharacteristic(0x2A3C, "Scientific Temperature Celsius"); attributes.AddCharacteristic(0x2A10, "Secondary Time Zone"); attributes.AddCharacteristic(0x2A5D, "Sensor Location"); attributes.AddCharacteristic(0x2A25, "Serial Number String"); attributes.AddCharacteristic(0x2A05, "Service Changed"); attributes.AddCharacteristic(0x2A3B, "Service Required"); attributes.AddCharacteristic(0x2A28, "Software Revision String"); attributes.AddCharacteristic(0x2A93, "Sport Type for Aerobic and Anaerobic Thresholds"); attributes.AddCharacteristic(0x2AD0, "Stair Climber Data"); attributes.AddCharacteristic(0x2ACF, "Step Climber Data"); attributes.AddCharacteristic(0x2A3D, "String"); attributes.AddCharacteristic(0x2AD7, "Supported Heart Rate Range"); attributes.AddCharacteristic(0x2AD5, "Supported Inclination Range"); attributes.AddCharacteristic(0x2A47, "Supported New Alert Category"); attributes.AddCharacteristic(0x2AD8, "Supported Power Range"); attributes.AddCharacteristic(0x2AD6, "Supported Resistance Level Range"); attributes.AddCharacteristic(0x2AD4, "Supported Speed Range"); attributes.AddCharacteristic(0x2A48, "Supported Unread Alert Category"); attributes.AddCharacteristic(0x2A23, "System ID"); attributes.AddCharacteristic(0x2ABC, "TDS Control Point"); attributes.AddCharacteristic(0x2A6E, "Temperature"); attributes.AddCharacteristic(0x2A1F, "Temperature Celsius"); attributes.AddCharacteristic(0x2A20, "Temperature Fahrenheit"); attributes.AddCharacteristic(0x2A1C, "Temperature Measurement"); attributes.AddCharacteristic(0x2A1D, "Temperature Type"); attributes.AddCharacteristic(0x2A94, "Three Zone Heart Rate Limits"); attributes.AddCharacteristic(0x2A12, "Time Accuracy"); attributes.AddCharacteristic(0x2A15, "Time Broadcast"); attributes.AddCharacteristic(0x2A13, "Time Source"); attributes.AddCharacteristic(0x2A16, "Time Update Control Point"); attributes.AddCharacteristic(0x2A17, "Time Update State"); attributes.AddCharacteristic(0x2A11, "Time with DST"); attributes.AddCharacteristic(0x2A0E, "Time Zone"); attributes.AddCharacteristic(0x2AD3, "Training Status"); attributes.AddCharacteristic(0x2ACD, "Treadmill Data"); attributes.AddCharacteristic(0x2A71, "True Wind Direction"); attributes.AddCharacteristic(0x2A70, "True Wind Speed"); attributes.AddCharacteristic(0x2A95, "Two Zone Heart Rate Limit"); attributes.AddCharacteristic(0x2A07, "Tx Power Level"); attributes.AddCharacteristic(0x2AB4, "Uncertainty"); attributes.AddCharacteristic(0x2A45, "Unread Alert Status"); attributes.AddCharacteristic(0x2AB6, "URI"); attributes.AddCharacteristic(0x2A9F, "User Control Point"); attributes.AddCharacteristic(0x2A9A, "User Index"); attributes.AddCharacteristic(0x2A76, "UV Index"); attributes.AddCharacteristic(0x2A96, "VO2 Max"); attributes.AddCharacteristic(0x2A97, "Waist Circumference"); attributes.AddCharacteristic(0x2A98, "Weight"); attributes.AddCharacteristic(0x2A9D, "Weight Measurement"); attributes.AddCharacteristic(0x2A9E, "Weight Scale Feature"); attributes.AddCharacteristic(0x2A79, "Wind Chill"); }