Esempio n. 1
0
        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");
        }
Esempio n. 2
0
 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");
 }