{"name":"Bluetooth GATT characteristic layouts","publisher":"AIFitnessAPI (https://aifitnessapi.com)","page":"https://aifitnessapi.com/tools/ble-gatt-explorer","source":{"repository":"https://bitbucket.org/bluetooth-SIG/public","commit":"408f4a0305d87ea75d9f700e3c8f85aa1d3a74fd"},"note":"Compiled from the Bluetooth SIG's GATT Specification Supplement YAML files (Copyright © Bluetooth SIG, Inc.; this site is not affiliated with the SIG). Byte order little-endian. A field marked unsupported stops decoding.","count":91,"layouts":[{"uuid":"0x2A08","uuidNumber":10760,"id":"org.bluetooth.characteristic.date_time","name":"Date Time","slug":"date-time","hasPage":true,"file":"gss/org.bluetooth.characteristic.date_time.yaml","byteOrder":"little-endian","fields":[{"name":"Year","anchor":"field-year","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Year as defined by the Gregorian calendar. Valid range 1582 to 9999. A value of 0 means that the year is not known. All other values are Reserved for Future Use.","reason":null},{"name":"Month","anchor":"field-month","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Month of the year as defined by the Gregorian calendar. Valid range 1 (January) to 12 (December). A value of 0 means that the month is not known. All other values are Reserved for Future Use.","reason":null},{"name":"Day","anchor":"field-day","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Day of the month as defined by the Gregorian calendar. Valid range 1 to 31. A value of 0 means that the day of month is not known. All other values are Reserved for Future Use.","reason":null},{"name":"Hours","anchor":"field-hours","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Number of hours past midnight. Valid range 0 to 23. All other values are Reserved for Future Use.","reason":null},{"name":"Minutes","anchor":"field-minutes","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Number of minutes since the start of the hour. Valid range 0 to 59. All other values are Reserved for Future Use.","reason":null},{"name":"Seconds","anchor":"field-seconds","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Number of seconds since the start of the minute. Valid range 0 to 59. All other values are Reserved for Future Use.","reason":null}],"unsupported":null},{"uuid":"0x2A0D","uuidNumber":10765,"id":"org.bluetooth.characteristic.dst_offset","name":"DST Offset","slug":"dst-offset","hasPage":false,"file":"gss/org.bluetooth.characteristic.dst_offset.yaml","byteOrder":"little-endian","fields":[{"name":"DST Offset","anchor":"field-dst-offset","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"0: Standard Time 2: Half an hour Daylight Time (+ 0.5h) 4: Daylight Time (+ 1h) 8: Double Daylight Time (+ 2h) 255: DST offset unknown All other values: Reserved for Future Use","reason":null}],"unsupported":null},{"uuid":"0x2A0E","uuidNumber":10766,"id":"org.bluetooth.characteristic.time_zone","name":"Time Zone","slug":"time-zone","hasPage":false,"file":"gss/org.bluetooth.characteristic.time_zone.yaml","byteOrder":"little-endian","fields":[{"name":"Time Zone","anchor":"field-time-zone","type":"sint8","size":"1","sizeKind":"fixed","kind":"sint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"This field represents the offset from UTC in number of 15-minute increments. Valid range from -48 to +56. A value of -128 means that the time zone offset is not known. All other values are Reserved for Future Use. The offset defined in this characteristic is constant regardless of whether daylight savings is in effect.","reason":null}],"unsupported":null},{"uuid":"0x2A18","uuidNumber":10776,"id":"org.bluetooth.characteristic.glucose_measurement","name":"Glucose Measurement","slug":"glucose-measurement","hasPage":true,"file":"gss/org.bluetooth.characteristic.glucose_measurement.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Time Offset Flag:\n0 = Time Offset field not present\n1 = Time Offset field present","reserved":false},{"bits":[1],"label":"1","description":"Glucose Concentration and Type-Sample Location Flag:\n0 = Glucose Concentration and Type-Sample Location fields not present\n1 = Glucose Concentration and Type-Sample Location fields present","reserved":false},{"bits":[2],"label":"2","description":"Glucose Units Flag:\n0 = Glucose concentration in units of mg/dL\n1 = Glucose concentration in units of mmol/L","reserved":false},{"bits":[3],"label":"3","description":"Sensor Status Annunciation Flag:\n0 = Sensor Status Annunciation field not present\n1 = Sensor Status Annunciation field present","reserved":false},{"bits":[4],"label":"4","description":"Context Information Flag:\n0 = This record does not include context information\n1 = This record includes context information","reserved":false},{"bits":[5,6,7],"label":"5–7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Sequence Number","anchor":"field-sequence-number","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Contains a sequence number of the record. It is used to number a sequence of measurements as defined by the service.","reason":null},{"name":"Base Time","anchor":"field-base-time","type":"struct","size":"7","sizeKind":"fixed","kind":"struct","width":7,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Year","anchor":"field-year","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":0,"unit":null,"scale":null},{"name":"Month","anchor":"field-month","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":16,"unit":null,"scale":null},{"name":"Day","anchor":"field-day","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":24,"unit":null,"scale":null},{"name":"Hours","anchor":"field-hours","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":32,"unit":null,"scale":null},{"name":"Minutes","anchor":"field-minutes","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":40,"unit":null,"scale":null},{"name":"Seconds","anchor":"field-seconds","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":48,"unit":null,"scale":null}],"packed":false,"structNote":"Members from Date Time (0x2A08), which the field's text refers to.","prose":"Refer to Date Time characteristic in \\autoref{sec:org.bluetooth.characteristic.date_time}","reason":null},{"name":"Time Offset","anchor":"field-time-offset","type":"int16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.minute","label":"minute","evidence":"unit: org.bluetooth.unit.time.minute"},"scale":null,"bits":null,"values":[{"from":0,"to":65535,"value":"0x0000–0xFFFF","description":"Time offset in minutes"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Glucose Concentration","anchor":"field-glucose-concentration","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.mass_density.kilogram_per_liter","label":"kilogram per liter","evidence":"unit: org.bluetooth.unit.mass_density.kilogram_per_liter"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Type-Sample Location","anchor":"field-type-sample-location","type":"struct","size":"0 or 1","sizeKind":"optional","kind":"struct","width":1,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Type","anchor":"def-type-sample-location--type","type":"uint4","kind":"uint","bitWidth":4,"bitOffset":0,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null},{"name":"Sample Location","anchor":"def-type-sample-location--sample-location","type":"uint4","kind":"uint","bitWidth":4,"bitOffset":4,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null}],"packed":true,"structNote":"The structure of this field is defined below.","prose":null,"reason":null},{"name":"Sensor Status Annunciation","anchor":"field-sensor-status-annunciation","type":"boolean[16]","size":"0 or 2","sizeKind":"optional","kind":"bits","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Device battery low:\n0 = The battery was not low at the time of measurement.\n1 = The battery was low at the time of measurement.","reserved":false},{"bits":[1],"label":"1","description":"Sensor malfunction:\n0 = The sensor was not malfunctioning or faulting at the time of measurement.\n1 = The sensor was malfunctioning or faulting at the time of measurement.","reserved":false},{"bits":[2],"label":"2","description":"Sample size insufficient:\n0 = There was enough blood or control solution on the strip during the measurement.\n1 = There was not enough blood or control solution on the strip during the measurement.","reserved":false},{"bits":[3],"label":"3","description":"Strip insertion error:\n0 = The strip was inserted correctly.\n1 = The strip was not inserted correctly.","reserved":false},{"bits":[4],"label":"4","description":"Strip type incorrect:\n0 = The strip was the right type for the device.\n1 = The strip was not the right type for the device.","reserved":false},{"bits":[5],"label":"5","description":"Sensor result too high:\n0 = The reading or value was not higher than the device can process.\n1 = The reading or value was higher than the device can process.","reserved":false},{"bits":[6],"label":"6","description":"Sensor result too low:\n0 = The reading or value was not lower than the device can process.\n1 = The reading or value was lower than the device can process.","reserved":false},{"bits":[7],"label":"7","description":"Sensor temperature too high:\n0 = The ambient temperature was not too high for a valid test/result at the time of measurement.\n1 = The ambient temperature was too high for a valid test/result at the time of measurement.","reserved":false},{"bits":[8],"label":"8","description":"Sensor temperature too low:\n0 = The ambient temperature was not too low for a valid test/result at the time of measurement.\n1 = The ambient temperature was too low for a valid test/result at the time of measurement.","reserved":false},{"bits":[9],"label":"9","description":"Sensor read interrupted:\n0 = The reading was not interrupted and the strip was not pulled too soon during the measurement.\n1 = The reading was interrupted or the strip was pulled too soon during the measurement.","reserved":false},{"bits":[10],"label":"10","description":"General device fault:\n0 = A general device fault has not occurred in the sensor device.\n1 = A general device fault has occurred in the sensor device.","reserved":false},{"bits":[11],"label":"11","description":"Time fault:\n0 = A time fault has not occurred in the sensor device.\n1 = A time fault has occurred in the sensor device and the time is inaccurate.","reserved":false},{"bits":[12,13,14,15],"label":"12–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":"Glucose Concentration: medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"uuid":"0x2A19","uuidNumber":10777,"id":"org.bluetooth.characteristic.battery_level","name":"Battery Level","slug":"battery-level","hasPage":false,"file":"gss/org.bluetooth.characteristic.battery_level.yaml","byteOrder":"little-endian","fields":[{"name":"Battery Level","anchor":"battery-level","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Base Unit: org.bluetooth.unit.percentage."},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A1C","uuidNumber":10780,"id":"org.bluetooth.characteristic.temperature_measurement","name":"Temperature Measurement","slug":"temperature-measurement","hasPage":true,"file":"gss/org.bluetooth.characteristic.temperature_measurement.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Temperature Units Flag\n0 = Temperature Measurement Value in units of Celsius\n1 = Temperature Measurement Value in units of Fahrenheit","reserved":false},{"bits":[1],"label":"1","description":"Time Stamp Flag\n0 = Time Stamp field not present\n1 = Time Stamp field present","reserved":false},{"bits":[2],"label":"2","description":"Temperature Type Flag\n0 = Temperature Type field not present\n1 = Temperature Type field present","reserved":false},{"bits":[3,4,5,6,7],"label":"3–7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Temperature Measurement Value (Celsius)","anchor":"field-temperature-measurement-value-celsius","type":"medfloat32","size":"0 or 4","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.thermodynamic_temperature.degree_celsius","label":"degree Celsius","evidence":"Unit: org.bluetooth.unit.thermodynamic_temperature.degree_celsius."},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat32 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Temperature Measurement Value (Fahrenheit)","anchor":"field-temperature-measurement-value-fahrenheit","type":"medfloat32","size":"0 or 4","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.thermodynamic_temperature.degree_fahrenheit","label":"degree Fahrenheit","evidence":"Unit: org.bluetooth.unit.thermodynamic_temperature.degree_fahrenheit."},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat32 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Time Stamp","anchor":"field-time-stamp","type":"struct","size":"0 or 7","sizeKind":"optional","kind":"struct","width":7,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Year","anchor":"field-year","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":0,"unit":null,"scale":null},{"name":"Month","anchor":"field-month","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":16,"unit":null,"scale":null},{"name":"Day","anchor":"field-day","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":24,"unit":null,"scale":null},{"name":"Hours","anchor":"field-hours","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":32,"unit":null,"scale":null},{"name":"Minutes","anchor":"field-minutes","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":40,"unit":null,"scale":null},{"name":"Seconds","anchor":"field-seconds","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":48,"unit":null,"scale":null}],"packed":false,"structNote":"Members from Date Time (0x2A08), which the field's text refers to.","prose":"Refer to Date Time characteristic in \\autoref{sec:org.bluetooth.characteristic.date_time}.","reason":null},{"name":"Temperature Type","anchor":"field-temperature-type","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"The format of this field is the same as the format of the Temperature Type characteristic in \\autoref{sec:org.bluetooth.characteristic.temperature_type}.","reason":null}],"unsupported":"Temperature Measurement Value (Celsius): medfloat32 is not decoded here: the SIG's YAML files do not define its encoding"},{"uuid":"0x2A1D","uuidNumber":10781,"id":"org.bluetooth.characteristic.temperature_type","name":"Temperature Type","slug":"temperature-type","hasPage":false,"file":"gss/org.bluetooth.characteristic.temperature_type.yaml","byteOrder":"little-endian","fields":[{"name":"Temperature Type Description","anchor":"field-temperature-type-description","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0","description":"Reserved for Future Use"},{"from":1,"to":1,"value":"1","description":"Armpit"},{"from":2,"to":2,"value":"2","description":"Body (general)"},{"from":3,"to":3,"value":"3","description":"Ear (usually earlobe)"},{"from":4,"to":4,"value":"4","description":"Finger"},{"from":5,"to":5,"value":"5","description":"Gastrointestinal Tract"},{"from":6,"to":6,"value":"6","description":"Mouth"},{"from":7,"to":7,"value":"7","description":"Rectum"},{"from":8,"to":8,"value":"8","description":"Toe"},{"from":9,"to":9,"value":"9","description":"Tympanum (ear drum)"},{"from":10,"to":255,"value":"10–255","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A1E","uuidNumber":10782,"id":"org.bluetooth.characteristic.intermediate_temperature","name":"Intermediate Temperature","slug":"intermediate-temperature","hasPage":true,"file":"gss/org.bluetooth.characteristic.intermediate_temperature.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Temperature Units Flag\n0 = Intermediate Temperature in units of Celsius\n1 = Intermediate Temperature in units of Fahrenheit","reserved":false},{"bits":[1],"label":"1","description":"Time Stamp Flag\n0 = Time Stamp field not present\n1 = Time Stamp field present","reserved":false},{"bits":[2],"label":"2","description":"Temperature Type Flag\n0 = Temperature Type field not present\n1 = Temperature Type field present","reserved":false},{"bits":[3,4,5,6,7],"label":"3–7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Intermediate Temperature (Celsius)","anchor":"field-intermediate-temperature-celsius","type":"medfloat32","size":"0 or 4","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.thermodynamic_temperature.degree_celsius","label":"degree Celsius","evidence":"Unit: org.bluetooth.unit.thermodynamic_temperature.degree_celsius."},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat32 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Intermediate Temperature (Fahrenheit)","anchor":"field-intermediate-temperature-fahrenheit","type":"medfloat32","size":"0 or 4","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.thermodynamic_temperature.degree_fahrenheit","label":"degree Fahrenheit","evidence":"Unit: org.bluetooth.unit.thermodynamic_temperature.degree_fahrenheit."},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat32 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Time Stamp","anchor":"field-time-stamp","type":"struct","size":"0 or 7","sizeKind":"optional","kind":"struct","width":7,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Year","anchor":"field-year","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":0,"unit":null,"scale":null},{"name":"Month","anchor":"field-month","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":16,"unit":null,"scale":null},{"name":"Day","anchor":"field-day","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":24,"unit":null,"scale":null},{"name":"Hours","anchor":"field-hours","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":32,"unit":null,"scale":null},{"name":"Minutes","anchor":"field-minutes","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":40,"unit":null,"scale":null},{"name":"Seconds","anchor":"field-seconds","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":48,"unit":null,"scale":null}],"packed":false,"structNote":"Members from Date Time (0x2A08), which the field's text refers to.","prose":"Refer to Date Time characteristic in \\autoref{sec:org.bluetooth.characteristic.date_time}.","reason":null},{"name":"Temperature Type","anchor":"field-temperature-type","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"The format of this field is the same as the format of the Temperature Type characteristic in \\autoref{sec:org.bluetooth.characteristic.temperature_type}.","reason":null}],"unsupported":"Intermediate Temperature (Celsius): medfloat32 is not decoded here: the SIG's YAML files do not define its encoding"},{"uuid":"0x2A21","uuidNumber":10785,"id":"org.bluetooth.characteristic.measurement_interval","name":"Measurement Interval","slug":"measurement-interval","hasPage":false,"file":"gss/org.bluetooth.characteristic.measurement_interval.yaml","byteOrder":"little-endian","fields":[{"name":"Measurement Interval","anchor":"field-measurement-interval","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0","description":"No periodic measurement"},{"from":1,"to":65535,"value":"1–65535","description":"Duration of measurement interval. 65535 seconds is equal to 18 hours, 12 minutes, and 15 seconds.\nUnit: org.bluetooth.unit.time.second"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A34","uuidNumber":10804,"id":"org.bluetooth.characteristic.glucose_measurement_context","name":"Glucose Measurement Context","slug":"glucose-measurement-context","hasPage":true,"file":"gss/org.bluetooth.characteristic.glucose_measurement_context.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Carbohydrates Flag:\n0 = Carbohydrate ID and Carbohydrate fields not present\n1 = Carbohydrate ID and Carbohydrate fields present","reserved":false},{"bits":[1],"label":"1","description":"Meal Flag:\n0 = Meal field not present\n1 = Meal field present","reserved":false},{"bits":[2],"label":"2","description":"Tester-Health Flag:\n0 = Tester-Health field not present\n1 = Tester-Health field present","reserved":false},{"bits":[3],"label":"3","description":"Exercise Flag:\n0 = Exercise Duration and Exercise Intensity fields not present\n1 = Exercise Duration and Exercise Intensity fields present","reserved":false},{"bits":[4],"label":"4","description":"Medication Flag:\n0 = Medication ID and Medication fields not present\n1 = Medication ID and Medication fields present","reserved":false},{"bits":[5],"label":"5","description":"Medication Units Flag:\n0 = Medication value in units of milligrams\n1 = Medication value in units of milliliters","reserved":false},{"bits":[6],"label":"6","description":"HbA1c Flag:\n0 = HbA1c field not present\n1 = HbA1c field present","reserved":false},{"bits":[7],"label":"7","description":"Extended Flags:\n0 = Extended Flags field not present\n1 = Extended Flags field present","reserved":false}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Sequence Number","anchor":"field-sequence-number","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Contains the sequence number of the corresponding Glucose Measurement as defined by the service.","reason":null},{"name":"Extended Flags","anchor":"field-extended-flags","type":"boolean[8]","size":"0 or 1","sizeKind":"optional","kind":"bits","width":1,"presence":{"field":"Flags","bit":7,"value":1,"evidence":"Present if bit 7 of Flags field is set to 1"},"presenceText":"Present if bit 7 of Flags field is set to 1","unit":null,"scale":null,"bits":[{"bits":[0,1,2,3,4,5,6,7],"label":"0–7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Carbohydrate ID","anchor":"field-carbohydrate-id","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0x00","description":"Reserved for Future Use"},{"from":1,"to":1,"value":"0x01","description":"Breakfast"},{"from":2,"to":2,"value":"0x02","description":"Lunch"},{"from":3,"to":3,"value":"0x03","description":"Dinner"},{"from":4,"to":4,"value":"0x04","description":"Snack"},{"from":5,"to":5,"value":"0x05","description":"Drink"},{"from":6,"to":6,"value":"0x06","description":"Supper"},{"from":7,"to":7,"value":"0x07","description":"Brunch"},{"from":8,"to":255,"value":"0x08–0xFF","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Carbohydrate","anchor":"field-carbohydrate","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.mass.kilogram","label":"kilogram","evidence":"Unit: org.bluetooth.unit.mass.kilogram"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Meal","anchor":"field-meal","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0x00","description":"Reserved for Future Use"},{"from":1,"to":1,"value":"0x01","description":"Preprandial (before meal)"},{"from":2,"to":2,"value":"0x02","description":"Postprandial (after meal)"},{"from":3,"to":3,"value":"0x03","description":"Fasting"},{"from":4,"to":4,"value":"0x04","description":"Casual (snacks, drinks, etc.)"},{"from":5,"to":5,"value":"0x05","description":"Bedtime"},{"from":6,"to":255,"value":"0x06–0xFF","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Tester-Health","anchor":"field-tester-health","type":"struct","size":"0 or 1","sizeKind":"optional","kind":"struct","width":1,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Tester","anchor":"def-tester-health--tester","type":"uint4","kind":"uint","bitWidth":4,"bitOffset":0,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null},{"name":"Health","anchor":"def-tester-health--health","type":"uint4","kind":"uint","bitWidth":4,"bitOffset":4,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null}],"packed":true,"structNote":"The structure of this field is defined below.","prose":null,"reason":null},{"name":"Exercise Duration","anchor":"field-exercise-duration","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":[{"from":0,"to":65534,"value":"0x0000–0xFFFE","description":"Exercise Duration in seconds"},{"from":65535,"to":65535,"value":"0xFFFF","description":"Overrun"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Exercise Intensity","anchor":"field-exercise-intensity","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Unit: org.bluetooth.unit.percentage"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Medication ID","anchor":"field-medication-id","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0x00","description":"Reserved for Future Use"},{"from":1,"to":1,"value":"0x01","description":"Rapid acting insulin"},{"from":2,"to":2,"value":"0x02","description":"Short acting insulin"},{"from":3,"to":3,"value":"0x03","description":"Intermediate acting insulin"},{"from":4,"to":4,"value":"0x04","description":"Long acting insulin"},{"from":5,"to":5,"value":"0x05","description":"Pre-mixed insulin"},{"from":6,"to":255,"value":"0x06–0xFF","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Medication","anchor":"field-medication","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.mass.kilogram","label":"kilogram","evidence":"Unit: org.bluetooth.unit.mass.kilogram"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"HbA1c","anchor":"field-hba1c","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":6,"value":1,"evidence":"Present if bit 6 of Flags field is set to 1"},"presenceText":"Present if bit 6 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Unit: org.bluetooth.unit.percentage"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"}],"unsupported":"Carbohydrate: medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"uuid":"0x2A35","uuidNumber":10805,"id":"org.bluetooth.characteristic.blood_pressure_measurement","name":"Blood Pressure Measurement","slug":"blood-pressure-measurement","hasPage":true,"file":"gss/org.bluetooth.characteristic.blood_pressure_measurement.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Blood Pressure Units Flag\n0 = Blood pressure for Systolic, Diastolic and MAP in units of mmHg\n1 = Blood pressure for Systolic, Diastolic and MAP in units of kPa","reserved":false},{"bits":[1],"label":"1","description":"Time Stamp Flag\n0 = Time Stamp not present\n1 = Time Stamp present","reserved":false},{"bits":[2],"label":"2","description":"Pulse Rate Flag\n0 = Pulse Rate not present\n1 = Pulse Rate present","reserved":false},{"bits":[3],"label":"3","description":"User ID Flag\n0 = User ID not present\n1 = User ID present","reserved":false},{"bits":[4],"label":"4","description":"Measurement Status Flag\n0 = Measurement Status not present\n1 = Measurement Status present","reserved":false},{"bits":[5,6,7],"label":"5–7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Blood Pressure Measurement Compound Value - Systolic (mmHg)","anchor":"field-blood-pressure-measurement-compound-value-systolic-mmhg","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.pressure.millimetre_of_mercury","label":"millimetre of mercury","evidence":"Unit: org.bluetooth.unit.pressure.millimetre_of_mercury"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Blood Pressure Measurement Compound Value - Diastolic (mmHg)","anchor":"field-blood-pressure-measurement-compound-value-diastolic-mmhg","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.pressure.millimetre_of_mercury","label":"millimetre of mercury","evidence":"Unit: org.bluetooth.unit.pressure.millimetre_of_mercury"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Blood Pressure Measurement Compound Value - Mean Arterial Pressure (mmHg)","anchor":"field-blood-pressure-measurement-compound-value-mean-arterial-pressure-mmhg","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.pressure.millimetre_of_mercury","label":"millimetre of mercury","evidence":"Unit: org.bluetooth.unit.pressure.millimetre_of_mercury"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Blood Pressure Measurement Compound Value - Systolic (kPa)","anchor":"field-blood-pressure-measurement-compound-value-systolic-kpa","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.pressure.pascal","label":"pascal","evidence":"Base Unit: org.bluetooth.unit.pressure.pascal;"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Blood Pressure Measurement Compound Value - Diastolic (kPa)","anchor":"field-blood-pressure-measurement-compound-value-diastolic-kpa","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.pressure.pascal","label":"pascal","evidence":"Base Unit: org.bluetooth.unit.pressure.pascal;"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Blood Pressure Measurement Compound Value - Mean Arterial Pressure (kPa)","anchor":"field-blood-pressure-measurement-compound-value-mean-arterial-pressure-kpa","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.pressure.pascal","label":"pascal","evidence":"Base Unit: org.bluetooth.unit.pressure.pascal;"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Time Stamp","anchor":"field-time-stamp","type":"struct","size":"0 or 7","sizeKind":"optional","kind":"struct","width":7,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Year","anchor":"field-year","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":0,"unit":null,"scale":null},{"name":"Month","anchor":"field-month","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":16,"unit":null,"scale":null},{"name":"Day","anchor":"field-day","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":24,"unit":null,"scale":null},{"name":"Hours","anchor":"field-hours","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":32,"unit":null,"scale":null},{"name":"Minutes","anchor":"field-minutes","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":40,"unit":null,"scale":null},{"name":"Seconds","anchor":"field-seconds","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":48,"unit":null,"scale":null}],"packed":false,"structNote":"Members from Date Time (0x2A08), which the field's text refers to.","prose":"Refer to Date Time characteristic in \\autoref{sec:org.bluetooth.characteristic.date_time}.","reason":null},{"name":"Pulse Rate","anchor":"field-pulse-rate","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"User ID","anchor":"field-user-id","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":254,"value":"0x00–0xFE","description":"Defined by the service specification"},{"from":255,"to":255,"value":"0xFF","description":"Unknown User"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Measurement Status","anchor":"field-measurement-status","type":"boolean[16]","size":"0 or 2","sizeKind":"optional","kind":"bits","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Body Movement Detection Flag\n0 = No body movement\n1 = Body movement detected during measurement","reserved":false},{"bits":[1],"label":"1","description":"Cuff Fit Detection Flag\n0 = Cuff fits properly\n1 = Cuff too loose","reserved":false},{"bits":[2],"label":"2","description":"Irregular Pulse Detection Flag\n0 = No irregular pulse detected\n1 = Irregular pulse detected","reserved":false},{"bits":[3,4],"label":"3–4","description":"Pulse Rate Range Detection Flags\n0b00 = Pulse rate is within the range\n0b01 = Pulse rate exceeds upper limit\n0b10 = Pulse rate is less than lower limit\n0b11 = Reserved for Future Use","reserved":true},{"bits":[5],"label":"5","description":"Measurement Position Detection Flag\n0 = Proper measurement position\n1 = Improper measurement position","reserved":false},{"bits":[6,7,8,9,10,11,12,13,14,15],"label":"6–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":"Blood Pressure Measurement Compound Value - Systolic (mmHg): medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"uuid":"0x2A36","uuidNumber":10806,"id":"org.bluetooth.characteristic.intermediate_cuff_pressure","name":"Intermediate Cuff Pressure","slug":"intermediate-cuff-pressure","hasPage":true,"file":"gss/org.bluetooth.characteristic.intermediate_cuff_pressure.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Intermediate Cuff Pressure Units Flag\n0 = Intermediate Cuff pressure for Systolic, Diastolic and MAP in units of mmHg\n1 = Intermediate Cuff pressure for Systolic, Diastolic and MAP in units of kPa","reserved":false},{"bits":[1],"label":"1","description":"Time Stamp Flag\n0 = Time Stamp not present\n1 = Time Stamp present","reserved":false},{"bits":[2],"label":"2","description":"Pulse Rate Flag\n0 = Pulse Rate not present\n1 = Pulse Rate present","reserved":false},{"bits":[3],"label":"3","description":"User ID Flag\n0 = User ID not present\n1 = User ID present","reserved":false},{"bits":[4],"label":"4","description":"Measurement Status Flag\n0 = Measurement Status not present\n1 = Measurement Status present","reserved":false},{"bits":[5,6,7],"label":"5–7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Intermediate Cuff Pressure Compound Value - Current Cuff Pressure (mmHg)","anchor":"field-intermediate-cuff-pressure-compound-value-current-cuff-pressure-mmhg","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.pressure.millimetre_of_mercury","label":"millimetre of mercury","evidence":"Unit: org.bluetooth.unit.pressure.millimetre_of_mercury"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Intermediate Cuff Pressure Compound Value - Current Cuff Pressure (kPa)","anchor":"field-intermediate-cuff-pressure-compound-value-current-cuff-pressure-kpa","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.pressure.pascal","label":"pascal","evidence":"Base Unit: org.bluetooth.unit.pressure.pascal;"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Intermediate Cuff Pressure Compound Value - Diastolic (unused)","anchor":"field-intermediate-cuff-pressure-compound-value-diastolic-unused","type":"medfloat16","size":"2","sizeKind":"fixed","kind":"unsupported","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"This subfield is not used and is set to the special value NaN.","reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Intermediate Cuff Pressure Compound Value - Mean Arterial Pressure (unused)","anchor":"field-intermediate-cuff-pressure-compound-value-mean-arterial-pressure-unused","type":"medfloat16","size":"2","sizeKind":"fixed","kind":"unsupported","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"This subfield is not used and is set to the special value NaN.","reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Time Stamp","anchor":"field-time-stamp","type":"struct","size":"0 or 7","sizeKind":"optional","kind":"struct","width":7,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Year","anchor":"field-year","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":0,"unit":null,"scale":null},{"name":"Month","anchor":"field-month","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":16,"unit":null,"scale":null},{"name":"Day","anchor":"field-day","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":24,"unit":null,"scale":null},{"name":"Hours","anchor":"field-hours","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":32,"unit":null,"scale":null},{"name":"Minutes","anchor":"field-minutes","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":40,"unit":null,"scale":null},{"name":"Seconds","anchor":"field-seconds","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":48,"unit":null,"scale":null}],"packed":false,"structNote":"Members from Date Time (0x2A08), which the field's text refers to.","prose":"Refer to Date Time characteristic in \\autoref{sec:org.bluetooth.characteristic.date_time}","reason":null},{"name":"Pulse Rate","anchor":"field-pulse-rate","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"User ID","anchor":"field-user-id","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":254,"value":"0x00–0xFE","description":"Defined by the service specification"},{"from":255,"to":255,"value":"0xFF","description":"Unknown User"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Measurement Status","anchor":"field-measurement-status","type":"boolean[16]","size":"0 or 2","sizeKind":"optional","kind":"bits","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Body Movement Detection Flag\n0 = No body movement\n1 = Body movement detected during measurement","reserved":false},{"bits":[1],"label":"1","description":"Cuff Fit Detection Flag\n0 = Cuff fits properly\n1 = Cuff too loose","reserved":false},{"bits":[2],"label":"2","description":"Irregular Pulse Detection Flag\n0 = No irregular pulse detected\n1 = Irregular pulse detected","reserved":false},{"bits":[3,4],"label":"3–4","description":"Pulse Rate Range Detection Flags\n0b00 = Pulse rate is within the range\n0b01 = Pulse rate exceeds upper limit\n0b10 = Pulse rate is less than lower limit\n0b11 = Reserved for Future Use","reserved":true},{"bits":[5],"label":"5","description":"Measurement Position Detection Flag\n0 = Proper measurement position\n1 = Improper measurement position","reserved":false},{"bits":[6,7,8,9,10,11,12,13,14,15],"label":"6–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":"Intermediate Cuff Pressure Compound Value - Current Cuff Pressure (mmHg): medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"uuid":"0x2A37","uuidNumber":10807,"id":"org.bluetooth.characteristic.heart_rate_measurement","name":"Heart Rate Measurement","slug":"heart-rate-measurement","hasPage":true,"file":"gss/org.bluetooth.characteristic.heart_rate_measurement.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Heart Rate Value Format:\n0 = Heart Rate Value Format is set to uint8\n1 = Heart Rate Value Format is set to uint16","reserved":false},{"bits":[1],"label":"1","description":"Sensor Contact detected","reserved":false},{"bits":[2],"label":"2","description":"Sensor Contact Supported","reserved":false},{"bits":[3],"label":"3","description":"Energy Expended present","reserved":false},{"bits":[4],"label":"4","description":"RR-Interval present","reserved":false},{"bits":[5,6,7],"label":"5–7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Heart Rate Measurement Value (8 bit resolution)","anchor":"field-heart-rate-measurement-value-8-bit-resolution","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Heart Rate Measurement Value (16 bit resolution)","anchor":"field-heart-rate-measurement-value-16-bit-resolution","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Expended","anchor":"field-energy-expended","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.joule","label":"joule","evidence":"Unit: org.bluetooth.unit.energy.joule"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"RR-interval","anchor":"field-rr-interval","type":"uint16[n]","size":"0 or n*2","sizeKind":"variable","kind":"array","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null,"signed":false}],"unsupported":null},{"uuid":"0x2A38","uuidNumber":10808,"id":"org.bluetooth.characteristic.body_sensor_location","name":"Body Sensor Location","slug":"body-sensor-location","hasPage":false,"file":"gss/org.bluetooth.characteristic.body_sensor_location.yaml","byteOrder":"little-endian","fields":[{"name":"Body Sensor Location","anchor":"field-body-sensor-location","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0x00","description":"Other"},{"from":1,"to":1,"value":"0x01","description":"Chest"},{"from":2,"to":2,"value":"0x02","description":"Wrist"},{"from":3,"to":3,"value":"0x03","description":"Finger"},{"from":4,"to":4,"value":"0x04","description":"Hand"},{"from":5,"to":5,"value":"0x05","description":"Ear Lobe"},{"from":6,"to":6,"value":"0x06","description":"Foot"},{"from":7,"to":255,"value":"0x07–0xFF","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A39","uuidNumber":10809,"id":"org.bluetooth.characteristic.heart_rate_control_point","name":"Heart Rate Control Point","slug":"heart-rate-control-point","hasPage":false,"file":"gss/org.bluetooth.characteristic.heart_rate_control_point.yaml","byteOrder":"little-endian","fields":[{"name":"Heart Rate Control Point","anchor":"field-heart-rate-control-point","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0x00","description":"Reserved for Future Use"},{"from":1,"to":1,"value":"0x01","description":"Reset Energy Expended\nResets the value of the Energy Expended field in the Heart Rate Measurement characteristic to 0"},{"from":2,"to":255,"value":"0x02–0xFF","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A49","uuidNumber":10825,"id":"org.bluetooth.characteristic.blood_pressure_feature","name":"Blood Pressure Feature","slug":"blood-pressure-feature","hasPage":false,"file":"gss/org.bluetooth.characteristic.blood_pressure_feature.yaml","byteOrder":"little-endian","fields":[{"name":"Blood Pressure Feature","anchor":"field-blood-pressure-feature","type":"boolean[16]","size":"2","sizeKind":"fixed","kind":"bits","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Body Movement Detection Support\n0 = Body Movement Detection feature not supported\n1 = Body Movement Detection feature supported","reserved":false},{"bits":[1],"label":"1","description":"Cuff Fit Detection Support\n0 = Cuff Fit Detection feature not supported\n1 = Cuff Fit Detection feature supported","reserved":false},{"bits":[2],"label":"2","description":"Irregular Pulse Detection Support\n0 = Irregular Pulse Detection feature not supported\n1 = Irregular Pulse Detection feature supported","reserved":false},{"bits":[3],"label":"3","description":"Pulse Rate Range Detection Support\n0 = Pulse Rate Range Detection feature not supported\n1 = Pulse Rate Range Detection feature supported","reserved":false},{"bits":[4],"label":"4","description":"Measurement Position Detection Support\n0 = Measurement Position Detection feature not supported\n1 = Measurement Position Detection feature supported","reserved":false},{"bits":[5],"label":"5","description":"Multiple Bond Support\n0 = Multiple Bonds not supported\n1 = Multiple Bonds supported","reserved":false},{"bits":[6],"label":"6","description":"E2E-CRC Support\n0 = E2E-CRC not supported\n1 = E2E-CRC supported","reserved":false},{"bits":[7],"label":"7","description":"User Data Service Support\n0 = User Data Service not supported\n1 = User Data Service supported","reserved":false},{"bits":[8],"label":"8","description":"User Facing Time Support\n0 = User Facing Time not supported\n1 = User Facing Time supported","reserved":false},{"bits":[9,10,11,12,13,14,15],"label":"9–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A51","uuidNumber":10833,"id":"org.bluetooth.characteristic.glucose_feature","name":"Glucose Feature","slug":"glucose-feature","hasPage":false,"file":"gss/org.bluetooth.characteristic.glucose_feature.yaml","byteOrder":"little-endian","fields":[{"name":"Glucose Feature","anchor":"field-glucose-feature","type":"boolean[16]","size":"2","sizeKind":"fixed","kind":"bits","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Low Battery Detection During Measurement support bit:\n0 = Low Battery Detection During Measurement feature not supported\n1 = Low Battery Detection During Measurement feature supported","reserved":false},{"bits":[1],"label":"1","description":"Sensor Malfunction Detection support bit:\n0 = Sensor Malfunction Detection feature not supported\n1 = Sensor Malfunction Detection feature supported","reserved":false},{"bits":[2],"label":"2","description":"Sensor Sample Size support bit:\n0 = Sensor Sample Size feature not supported\n1 = Sensor Sample Size feature supported","reserved":false},{"bits":[3],"label":"3","description":"Sensor Strip Insertion Error Detection support bit:\n0 = Sensor Strip Insertion Error Detection feature not supported\n1 = Sensor Strip Insertion Error Detection feature supported","reserved":false},{"bits":[4],"label":"4","description":"Sensor Strip Type Error Detection support bit:\n0 = Sensor Strip Type Error Detection not supported\n1 = Sensor Strip Type Error Detection supported","reserved":false},{"bits":[5],"label":"5","description":"Sensor Result High-Low Detection support bit:\n0 = Sensor Result High-Low Detection not supported\n1 = Sensor Result High-Low Detection supported","reserved":false},{"bits":[6],"label":"6","description":"Sensor Temperature High-Low Detection support bit:\n0 = Sensor Temperature High-Low Detection not supported\n1 = Sensor Temperature High-Low Detection supported","reserved":false},{"bits":[7],"label":"7","description":"Sensor Read Interrupt Detection support bit:\n0 = Sensor Read Interrupt Detection not supported\n1 = Sensor Read Interrupt Detection supported","reserved":false},{"bits":[8],"label":"8","description":"General Device Fault support bit:\n0 = General Device Fault not supported\n1 = General Device Fault supported","reserved":false},{"bits":[9],"label":"9","description":"Time Fault support bit:\n0 = Time Fault not supported\n1 = Time Fault supported","reserved":false},{"bits":[10],"label":"10","description":"Multiple Bond support bit:\n0 = Multiple Bonds not supported\n1 = Multiple Bonds supported","reserved":false},{"bits":[11,12,13,14,15],"label":"11–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A52","uuidNumber":10834,"id":"org.bluetooth.characteristic.record_access_control_point","name":"Record Access Control Point","slug":"record-access-control-point","hasPage":true,"file":"gss/org.bluetooth.characteristic.record_access_control_point.yaml","byteOrder":"little-endian","fields":[{"name":"Op Code","anchor":"field-op-code","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Operator","anchor":"field-operator","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0x00","description":"Varies by Op Code"},{"from":1,"to":1,"value":"0x01","description":"No Operand used"},{"from":2,"to":2,"value":"0x02","description":"Operand contains at least a maximum value"},{"from":3,"to":3,"value":"0x03","description":"Operand contains at least a minimum value"},{"from":4,"to":4,"value":"0x04","description":"Operand contains at least a minimum value, maximum value pair"},{"from":5,"to":5,"value":"0x05","description":"No Operand used"},{"from":6,"to":6,"value":"0x06","description":"No Operand used"},{"from":7,"to":255,"value":"0x07-0xFF","description":"N/A"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Operand","anchor":"field-operand","type":"struct","size":"0-18","sizeKind":"variable","kind":"unsupported","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"no struct definition for Operand in the SIG's file"}],"unsupported":"Operand: no struct definition for Operand in the SIG's file"},{"uuid":"0x2A53","uuidNumber":10835,"id":"org.bluetooth.characteristic.rsc_measurement","name":"RSC Measurement","slug":"rsc-measurement","hasPage":true,"file":"gss/org.bluetooth.characteristic.rsc_measurement.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Instantaneous Stride Length Present","reserved":false},{"bits":[1],"label":"1","description":"Total Distance Present","reserved":false},{"bits":[2],"label":"2","description":"Walking or Running Status:\n0 = Walking\n1 = Running","reserved":false},{"bits":[3,4,5,6,7],"label":"3–7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Speed","anchor":"field-instantaneous-speed","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.velocity.metres_per_second","label":"metres per second","evidence":"Base Unit: org.bluetooth.unit.velocity.metres_per_second"},"scale":{"M":1,"d":0,"b":-8,"factor":0.00390625,"evidence":"Represented values: M = 1, d = 0, b = -8","unitIs":"Unit is 1/256th of a m/s","unitIsFactor":0.00390625,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Cadence","anchor":"field-instantaneous-cadence","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Unit is 1/min","reason":null},{"name":"Instantaneous Stride Length","anchor":"field-instantaneous-stride-length","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Base Unit: org.bluetooth.unit.length.metre"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is Centimeter","unitIsFactor":null,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Distance","anchor":"field-total-distance","type":"uint32","size":"0 or 4","sizeKind":"optional","kind":"uint","width":4,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Base Unit: org.bluetooth.unit.length.metre"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 m","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A54","uuidNumber":10836,"id":"org.bluetooth.characteristic.rsc_feature","name":"RSC Feature","slug":"rsc-feature","hasPage":false,"file":"gss/org.bluetooth.characteristic.rsc_feature.yaml","byteOrder":"little-endian","fields":[{"name":"RSC Feature","anchor":"field-rsc-feature","type":"boolean[16]","size":"2","sizeKind":"fixed","kind":"bits","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Instantaneous Stride Length Measurement Supported","reserved":false},{"bits":[1],"label":"1","description":"Total Distance Measurement Supported","reserved":false},{"bits":[2],"label":"2","description":"Walking or Running Status Supported","reserved":false},{"bits":[3],"label":"3","description":"Calibration Procedure Supported","reserved":false},{"bits":[4],"label":"4","description":"Multiple Sensor Locations Supported","reserved":false},{"bits":[5,6,7,8,9,10,11,12,13,14,15],"label":"5–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A55","uuidNumber":10837,"id":"org.bluetooth.characteristic.sc_control_point","name":"SC Control Point","slug":"sc-control-point","hasPage":true,"file":"gss/org.bluetooth.characteristic.sc_control_point.yaml","byteOrder":"little-endian","fields":[{"name":"Op Code","anchor":"field-op-code","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Parameter","anchor":"field-parameter","type":"struct","size":"0–18","sizeKind":"variable","kind":"unsupported","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"no struct definition for Parameter in the SIG's file"}],"unsupported":"Parameter: no struct definition for Parameter in the SIG's file"},{"uuid":"0x2A5B","uuidNumber":10843,"id":"org.bluetooth.characteristic.csc_measurement","name":"CSC Measurement","slug":"csc-measurement","hasPage":true,"file":"gss/org.bluetooth.characteristic.csc_measurement.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Wheel Revolution Data Present","reserved":false},{"bits":[1],"label":"1","description":"Crank Revolution Data Present","reserved":false},{"bits":[2,3,4,5,6,7],"label":"2–7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Wheel Revolution Data","anchor":"field-wheel-revolution-data","type":"struct","size":"0 or 6","sizeKind":"optional","kind":"struct","width":6,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Cumulative Wheel Revolutions","anchor":"def-wheel-revolution-data--cumulative-wheel-revolutions","type":"uint32","kind":"uint","bitWidth":32,"bitOffset":0,"unit":{"id":"org.bluetooth.unitless","label":"","evidence":"Unit: org.bluetooth.unitless"},"scale":null},{"name":"Last Wheel Event Time","anchor":"def-wheel-revolution-data--last-wheel-event-time","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":32,"unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Base Unit: org.bluetooth.unit.time.second"},"scale":{"M":1,"d":0,"b":-10,"factor":0.0009765625,"evidence":"Represented values: M = 1, d = 0, b = -10","unitIs":"Unit is 1/1024th of a second","unitIsFactor":0.0009765625,"conflict":false}}],"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Crank Revolution Data","anchor":"field-crank-revolution-data","type":"struct","size":"0 or 4","sizeKind":"optional","kind":"struct","width":4,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Cumulative Crank Revolutions","anchor":"def-crank-revolution-data--cumulative-crank-revolutions","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":0,"unit":{"id":"org.bluetooth.unitless","label":"","evidence":"Unit: org.bluetooth.unitless"},"scale":null},{"name":"Last Crank Event Time","anchor":"def-crank-revolution-data--last-crank-event-time","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":16,"unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Base Unit: org.bluetooth.unit.time.second"},"scale":{"M":1,"d":0,"b":-10,"factor":0.0009765625,"evidence":"Represented values: M = 1, d = 0, b = -10","unitIs":"Unit is 1/1024 second","unitIsFactor":0.0009765625,"conflict":false}}],"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A5C","uuidNumber":10844,"id":"org.bluetooth.characteristic.csc_feature","name":"CSC Feature","slug":"csc-feature","hasPage":false,"file":"gss/org.bluetooth.characteristic.csc_feature.yaml","byteOrder":"little-endian","fields":[{"name":"CSC Feature","anchor":"field-csc-feature","type":"boolean[16]","size":"2","sizeKind":"fixed","kind":"bits","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Wheel Revolution Data Supported","reserved":false},{"bits":[1],"label":"1","description":"Crank Revolution Data Supported","reserved":false},{"bits":[2],"label":"2","description":"Multiple Sensor Locations Supported","reserved":false},{"bits":[3,4,5,6,7,8,9,10,11,12,13,14,15],"label":"3–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A5D","uuidNumber":10845,"id":"org.bluetooth.characteristic.sensor_location","name":"Sensor Location","slug":"sensor-location","hasPage":false,"file":"gss/org.bluetooth.characteristic.sensor_location.yaml","byteOrder":"little-endian","fields":[{"name":"Sensor Location","anchor":"field-sensor-location","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0","description":"Other"},{"from":1,"to":1,"value":"1","description":"Top of shoe"},{"from":2,"to":2,"value":"2","description":"In shoe"},{"from":3,"to":3,"value":"3","description":"Hip"},{"from":4,"to":4,"value":"4","description":"Front Wheel"},{"from":5,"to":5,"value":"5","description":"Left Crank"},{"from":6,"to":6,"value":"6","description":"Right Crank"},{"from":7,"to":7,"value":"7","description":"Left Pedal"},{"from":8,"to":8,"value":"8","description":"Right Pedal"},{"from":9,"to":9,"value":"9","description":"Front Hub"},{"from":10,"to":10,"value":"10","description":"Rear Dropout"},{"from":11,"to":11,"value":"11","description":"Chainstay"},{"from":12,"to":12,"value":"12","description":"Rear Wheel"},{"from":13,"to":13,"value":"13","description":"Rear Hub"},{"from":14,"to":14,"value":"14","description":"Chest"},{"from":15,"to":15,"value":"15","description":"Spider"},{"from":16,"to":16,"value":"16","description":"Chain Ring"},{"from":17,"to":255,"value":"17–255","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A63","uuidNumber":10851,"id":"org.bluetooth.characteristic.cycling_power_measurement","name":"Cycling Power Measurement","slug":"cycling-power-measurement","hasPage":true,"file":"gss/org.bluetooth.characteristic.cycling_power_measurement.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[16]","size":"2","sizeKind":"fixed","kind":"bits","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Pedal Power Balance Present","reserved":false},{"bits":[1],"label":"1","description":"Pedal Power Balance Reference\n0 = Unknown\n1 = Left","reserved":false},{"bits":[2],"label":"2","description":"Accumulated Torque Present","reserved":false},{"bits":[3],"label":"3","description":"Accumulated Torque Source\n0 = Wheel based\n1 = Crank based","reserved":false},{"bits":[4],"label":"4","description":"Wheel Revolution Data Present","reserved":false},{"bits":[5],"label":"5","description":"Crank Revolution Data Present","reserved":false},{"bits":[6],"label":"6","description":"Extreme Force Magnitudes Present","reserved":false},{"bits":[7],"label":"7","description":"Extreme Torque Magnitudes Present","reserved":false},{"bits":[8],"label":"8","description":"Extreme Angles Present","reserved":false},{"bits":[9],"label":"9","description":"Top Dead Spot Angle Present","reserved":false},{"bits":[10],"label":"10","description":"Bottom Dead Spot Angle Present","reserved":false},{"bits":[11],"label":"11","description":"Accumulated Energy Present","reserved":false},{"bits":[12],"label":"12","description":"Offset Compensation Indicator\n0 = False\n1 = True","reserved":false},{"bits":[13,14,15],"label":"13–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Power","anchor":"field-instantaneous-power","type":"sint16","size":"2","sizeKind":"fixed","kind":"sint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.power.watt","label":"watt","evidence":"Unit: org.bluetooth.unit.power.watt"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Pedal Power Balance","anchor":"field-pedal-power-balance","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Base Unit: org.bluetooth.unit.percentage"},"scale":{"M":1,"d":0,"b":-1,"factor":0.5,"evidence":"Represented values: M = 1, d = 0, b = -1","unitIs":"Unit is 1/2 of a percent","unitIsFactor":0.5,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Accumulated Torque","anchor":"field-accumulated-torque","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.moment_of_force.newton_metre","label":"newton metre","evidence":"Base Unit: org.bluetooth.unit.moment_of_force.newton_metre"},"scale":{"M":1,"d":0,"b":-5,"factor":0.03125,"evidence":"Represented values: M = 1, d = 0, b = -5","unitIs":"Unit is 1/32 Newton meter","unitIsFactor":0.03125,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Wheel Revolution Data","anchor":"field-wheel-revolution-data","type":"struct","size":"0 or 6","sizeKind":"optional","kind":"struct","width":6,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Cumulative Wheel Revolutions","anchor":"def-wheel-revolution-data--cumulative-wheel-revolutions","type":"uint32","kind":"uint","bitWidth":32,"bitOffset":0,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null},{"name":"Last Wheel Event Time","anchor":"def-wheel-revolution-data--last-wheel-event-time","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":32,"unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Base Unit: org.bluetooth.unit.time.second"},"scale":{"M":1,"d":0,"b":-11,"factor":0.00048828125,"evidence":"Represented values: M = 1, d = 0, b = -11","unitIs":"Unit is 1/2048 second","unitIsFactor":0.00048828125,"conflict":false}}],"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Crank Revolution Data","anchor":"field-crank-revolution-data","type":"struct","size":"0 or 4","sizeKind":"optional","kind":"struct","width":4,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Cumulative Crank Revolutions","anchor":"def-crank-revolution-data--cumulative-crank-revolutions","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":0,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null},{"name":"Last Crank Event Time","anchor":"def-crank-revolution-data--last-crank-event-time","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":16,"unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Base Unit: org.bluetooth.unit.time.second"},"scale":{"M":1,"d":0,"b":-10,"factor":0.0009765625,"evidence":"Represented values: M = 1, d = 0, b = -10","unitIs":"Unit is 1/1024 second","unitIsFactor":0.0009765625,"conflict":false}}],"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Extreme Force Magnitudes","anchor":"field-extreme-force-magnitudes","type":"struct","size":"0 or 4","sizeKind":"optional","kind":"struct","width":4,"presence":{"field":"Flags","bit":6,"value":1,"evidence":"Present if bit 6 of Flags field is set to 1"},"presenceText":"Present if bit 6 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Maximum Force Magnitude","anchor":"def-extreme-force-magnitudes--maximum-force-magnitude","type":"sint16","kind":"sint","bitWidth":16,"bitOffset":0,"unit":{"id":"org.bluetooth.unit.force.newton","label":"newton","evidence":"Unit: org.bluetooth.unit.force.newton"},"scale":null},{"name":"Minimum Force Magnitude","anchor":"def-extreme-force-magnitudes--minimum-force-magnitude","type":"sint16","kind":"sint","bitWidth":16,"bitOffset":16,"unit":{"id":"org.bluetooth.unit.force.newton","label":"newton","evidence":"Unit: org.bluetooth.unit.force.newton"},"scale":null}],"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Extreme Torque Magnitudes","anchor":"field-extreme-torque-magnitudes","type":"struct","size":"0 or 4","sizeKind":"optional","kind":"struct","width":4,"presence":{"field":"Flags","bit":7,"value":1,"evidence":"Present if bit 7 of Flags field is set to 1"},"presenceText":"Present if bit 7 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Maximum Torque Magnitude","anchor":"def-extreme-torque-magnitudes--maximum-torque-magnitude","type":"sint16","kind":"sint","bitWidth":16,"bitOffset":0,"unit":{"id":"org.bluetooth.unit.moment_of_force.newton_metre","label":"newton metre","evidence":"Base Unit: org.bluetooth.unit.moment_of_force.newton_metre"},"scale":{"M":1,"d":0,"b":-5,"factor":0.03125,"evidence":"Represented values: M = 1, d = 0, b = -5","unitIs":"Unit is 1/32 Newton meter","unitIsFactor":0.03125,"conflict":false}},{"name":"Minimum Torque Magnitude","anchor":"def-extreme-torque-magnitudes--minimum-torque-magnitude","type":"sint16","kind":"sint","bitWidth":16,"bitOffset":16,"unit":{"id":"org.bluetooth.unit.moment_of_force.newton_metre","label":"newton metre","evidence":"Base Unit: org.bluetooth.unit.moment_of_force.newton_metre"},"scale":{"M":1,"d":0,"b":-5,"factor":0.03125,"evidence":"Represented values: M = 1, d = 0, b = -5","unitIs":"Unit is 1/32 Newton meter","unitIsFactor":0.03125,"conflict":false}}],"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Extreme Angles","anchor":"field-extreme-angles","type":"struct","size":"0 or 3","sizeKind":"optional","kind":"struct","width":3,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Maximum Angle","anchor":"def-extreme-angles--maximum-angle","type":"uint12","kind":"uint","bitWidth":12,"bitOffset":0,"unit":{"id":"org.bluetooth.unit.plane_angle.degree","label":"degree","evidence":"Unit: org.bluetooth.unit.plane_angle.degree"},"scale":null},{"name":"Minimum Angle","anchor":"def-extreme-angles--minimum-angle","type":"uint12","kind":"uint","bitWidth":12,"bitOffset":12,"unit":{"id":"org.bluetooth.unit.plane_angle.degree","label":"degree","evidence":"Unit: org.bluetooth.unit.plane_angle.degree"},"scale":null}],"packed":true,"structNote":"When observed with the front wheel to the right of the pedals, a value of 0 degrees represents the angle when the crank is in the 12 o'clock position and a value of 90 degrees represents the angle, measured clockwise, when the crank points towards the front wheel in the 3 o'clock position. The left crank sensor (if fitted) detects 0 degrees when the crank it is attached to is in the 12 o'clock position, and the right sensor (if fitted) detects 0 degrees when the crank it is attached to is in the 12 o'clock position; thus, there is a constant 180-degree difference between the right crank and the left crank position signals.\nWhen present, both subfields \"Extreme Angles - Minimum Angle\" and \"Extreme Angles - Maximum Angle\" are always present as a pair and are concatenated into a uint24 value (3 octets). As an example, if the Maximum Angle is 0xABC and the Minimum Angle is 0x123, the field value is represented as 0x123ABC.\nThe structure of this field is defined below.","prose":null,"reason":null},{"name":"Top Dead Spot Angle","anchor":"field-top-dead-spot-angle","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":9,"value":1,"evidence":"Present if bit 9 of Flags field is set to 1"},"presenceText":"Present if bit 9 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.plane_angle.degree","label":"degree","evidence":"Unit: org.bluetooth.unit.plane_angle.degree"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Bottom Dead Spot Angle","anchor":"field-bottom-dead-spot-angle","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":10,"value":1,"evidence":"Present if bit 10 of Flags field is set to 1"},"presenceText":"Present if bit 10 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.plane_angle.degree","label":"degree","evidence":"Unit: org.bluetooth.unit.plane_angle.degree"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Accumulated Energy","anchor":"field-accumulated-energy","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":11,"value":1,"evidence":"Present if bit 11 of Flags field is set to 1"},"presenceText":"Present if bit 11 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.joule","label":"joule","evidence":"Base Unit: org.bluetooth.unit.energy.joule"},"scale":{"M":1,"d":3,"b":0,"factor":1000,"evidence":"Represented values: M = 1, d = 3, b = 0","unitIs":"Unit is kilojoule","unitIsFactor":null,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A64","uuidNumber":10852,"id":"org.bluetooth.characteristic.cycling_power_vector","name":"Cycling Power Vector","slug":"cycling-power-vector","hasPage":true,"file":"gss/org.bluetooth.characteristic.cycling_power_vector.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Crank Revolution Data Present","reserved":false},{"bits":[1],"label":"1","description":"First Crank Measurement Angle Present","reserved":false},{"bits":[2],"label":"2","description":"Instantaneous Force Magnitude Array Present","reserved":false},{"bits":[3],"label":"3","description":"Instantaneous Torque Magnitude Array Present","reserved":false},{"bits":[4,5],"label":"4–5","description":"Instantaneous Measurement Direction\n0b00 = Unknown\n0b01 = Tangential Component\n0b10 = Radial Component\n0b11 = Lateral Component","reserved":false},{"bits":[6,7],"label":"6–7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Crank Revolution Data","anchor":"field-crank-revolution-data","type":"struct","size":"0 or 4","sizeKind":"optional","kind":"struct","width":4,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Cumulative Crank Revolutions","anchor":"def-crank-revolution-data--cumulative-crank-revolutions","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":0,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null},{"name":"Last Crank Event Time","anchor":"def-crank-revolution-data--last-crank-event-time","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":16,"unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Base Unit: org.bluetooth.unit.time.second"},"scale":{"M":1,"d":0,"b":-10,"factor":0.0009765625,"evidence":"Represented values: M = 1, d = 0, b = -10","unitIs":"Unit is 1/1024 second","unitIsFactor":0.0009765625,"conflict":false}}],"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"First Crank Measurement Angle","anchor":"field-first-crank-measurement-angle","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.plane_angle.degree","label":"degree","evidence":"Unit: org.bluetooth.unit.plane_angle.degree"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Force Magnitude Array","anchor":"field-instantaneous-force-magnitude-array","type":"sint16 [0–9]","size":"0–18","sizeKind":"variable","kind":"array","width":2,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.force.newton","label":"newton","evidence":"Unit: org.bluetooth.unit.force.newton"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null,"signed":true},{"name":"Instantaneous Torque Magnitude Array","anchor":"field-instantaneous-torque-magnitude-array","type":"sint16 [0–9]","size":"0–18","sizeKind":"variable","kind":"array","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.moment_of_force.newton_metre","label":"newton metre","evidence":"Base Unit: org.bluetooth.unit.moment_of_force.newton_metre"},"scale":{"M":1,"d":0,"b":-5,"factor":0.03125,"evidence":"Represented values: M = 1, d = 0, b = -5","unitIs":"Unit is 1/32 Newton meter","unitIsFactor":0.03125,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null,"signed":true}],"unsupported":null},{"uuid":"0x2A65","uuidNumber":10853,"id":"org.bluetooth.characteristic.cycling_power_feature","name":"Cycling Power Feature","slug":"cycling-power-feature","hasPage":false,"file":"gss/org.bluetooth.characteristic.cycling_power_feature.yaml","byteOrder":"little-endian","fields":[{"name":"Cycling Power Feature","anchor":"field-cycling-power-feature","type":"boolean[32]","size":"4","sizeKind":"fixed","kind":"bits","width":4,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Pedal Power Balance Supported","reserved":false},{"bits":[1],"label":"1","description":"Accumulated Torque Supported","reserved":false},{"bits":[2],"label":"2","description":"Wheel Revolution Data Supported","reserved":false},{"bits":[3],"label":"3","description":"Crank Revolution Data Supported","reserved":false},{"bits":[4],"label":"4","description":"Extreme Magnitudes Supported","reserved":false},{"bits":[5],"label":"5","description":"Extreme Angles Supported","reserved":false},{"bits":[6],"label":"6","description":"Top and Bottom Dead Spot Angles Supported","reserved":false},{"bits":[7],"label":"7","description":"Accumulated Energy Supported","reserved":false},{"bits":[8],"label":"8","description":"Offset Compensation Indicator Supported","reserved":false},{"bits":[9],"label":"9","description":"Offset Compensation Supported","reserved":false},{"bits":[10],"label":"10","description":"Cycling Power Measurement Characteristic Content Masking Supported","reserved":false},{"bits":[11],"label":"11","description":"Multiple Sensor Locations Supported","reserved":false},{"bits":[12],"label":"12","description":"Crank Length Adjustment Supported","reserved":false},{"bits":[13],"label":"13","description":"Chain Length Adjustment Supported","reserved":false},{"bits":[14],"label":"14","description":"Chain Weight Adjustment Supported","reserved":false},{"bits":[15],"label":"15","description":"Span Length Adjustment Supported","reserved":false},{"bits":[16],"label":"16","description":"Sensor Measurement Context\n0 = Force based\n1 = Torque based","reserved":false},{"bits":[17],"label":"17","description":"Instantaneous Measurement Direction Supported","reserved":false},{"bits":[18],"label":"18","description":"Factory Calibration Date Supported","reserved":false},{"bits":[19],"label":"19","description":"Enhanced Offset Compensation Procedure Supported","reserved":false},{"bits":[20,21],"label":"20–21","description":"Distributed System Support\n0b00 = Unspecified (Legacy Sensor)\n0b01 = Not for use in a distributed system\n0b10 = For use in a distributed system\n0b11 = Reserved for Future Use","reserved":true},{"bits":[22,23,24,25,26,27,28,29,30,31],"label":"22–31","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A66","uuidNumber":10854,"id":"org.bluetooth.characteristic.cycling_power_control_point","name":"Cycling Power Control Point","slug":"cycling-power-control-point","hasPage":true,"file":"gss/org.bluetooth.characteristic.cycling_power_control_point.yaml","byteOrder":"little-endian","fields":[{"name":"Op Code","anchor":"field-op-code","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Parameter","anchor":"field-parameter","type":"struct","size":"0–18","sizeKind":"variable","kind":"unsupported","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"no struct definition for Parameter in the SIG's file"}],"unsupported":"Parameter: no struct definition for Parameter in the SIG's file"},{"uuid":"0x2A7E","uuidNumber":10878,"id":"org.bluetooth.characteristic.aerobic_heart_rate_lower_limit","name":"Aerobic Heart Rate Lower Limit","slug":"aerobic-heart-rate-lower-limit","hasPage":false,"file":"gss/org.bluetooth.characteristic.aerobic_heart_rate_lower_limit.yaml","byteOrder":"little-endian","fields":[{"name":"Aerobic Heart Rate Lower Limit","anchor":"field-aerobic-heart-rate-lower-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A7F","uuidNumber":10879,"id":"org.bluetooth.characteristic.aerobic_threshold","name":"Aerobic Threshold","slug":"aerobic-threshold","hasPage":false,"file":"gss/org.bluetooth.characteristic.aerobic_threshold.yaml","byteOrder":"little-endian","fields":[{"name":"Aerobic Threshold","anchor":"field-aerobic-threshold","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A80","uuidNumber":10880,"id":"org.bluetooth.characteristic.age","name":"Age","slug":"age","hasPage":false,"file":"gss/org.bluetooth.characteristic.age.yaml","byteOrder":"little-endian","fields":[{"name":"Age","anchor":"field-age","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.time.year","label":"year","evidence":"Unit: org.bluetooth.unit.time.year"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A81","uuidNumber":10881,"id":"org.bluetooth.characteristic.anaerobic_heart_rate_lower_limit","name":"Anaerobic Heart Rate Lower Limit","slug":"anaerobic-heart-rate-lower-limit","hasPage":false,"file":"gss/org.bluetooth.characteristic.anaerobic_heart_rate_lower_limit.yaml","byteOrder":"little-endian","fields":[{"name":"Anaerobic Heart Rate Lower Limit","anchor":"field-anaerobic-heart-rate-lower-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A82","uuidNumber":10882,"id":"org.bluetooth.characteristic.anaerobic_heart_rate_upper_limit","name":"Anaerobic Heart Rate Upper Limit","slug":"anaerobic-heart-rate-upper-limit","hasPage":false,"file":"gss/org.bluetooth.characteristic.anaerobic_heart_rate_upper_limit.yaml","byteOrder":"little-endian","fields":[{"name":"Anaerobic Heart Rate Upper Limit","anchor":"field-anaerobic-heart-rate-upper-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A83","uuidNumber":10883,"id":"org.bluetooth.characteristic.anaerobic_threshold","name":"Anaerobic Threshold","slug":"anaerobic-threshold","hasPage":false,"file":"gss/org.bluetooth.characteristic.anaerobic_threshold.yaml","byteOrder":"little-endian","fields":[{"name":"Anaerobic Threshold","anchor":"field-anaerobic-threshold","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A84","uuidNumber":10884,"id":"org.bluetooth.characteristic.aerobic_heart_rate_upper_limit","name":"Aerobic Heart Rate Upper Limit","slug":"aerobic-heart-rate-upper-limit","hasPage":false,"file":"gss/org.bluetooth.characteristic.aerobic_heart_rate_upper_limit.yaml","byteOrder":"little-endian","fields":[{"name":"Aerobic Heart Rate Upper Limit","anchor":"field-aerobic-heart-rate-upper-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A85","uuidNumber":10885,"id":"org.bluetooth.characteristic.date_of_birth","name":"Date of Birth","slug":"date-of-birth","hasPage":true,"file":"gss/org.bluetooth.characteristic.date_of_birth.yaml","byteOrder":"little-endian","fields":[{"name":"Year","anchor":"field-year","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.time.year","label":"year","evidence":"Unit: org.bluetooth.unit.time.year"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Month","anchor":"field-month","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0","description":"Month is not known"},{"from":1,"to":1,"value":"1","description":"January"},{"from":2,"to":2,"value":"2","description":"February"},{"from":3,"to":3,"value":"3","description":"March"},{"from":4,"to":4,"value":"4","description":"April"},{"from":5,"to":5,"value":"5","description":"May"},{"from":6,"to":6,"value":"6","description":"June"},{"from":7,"to":7,"value":"7","description":"July"},{"from":8,"to":8,"value":"8","description":"August"},{"from":9,"to":9,"value":"9","description":"September"},{"from":10,"to":10,"value":"10","description":"October"},{"from":11,"to":11,"value":"11","description":"November"},{"from":12,"to":12,"value":"12","description":"December"},{"from":13,"to":255,"value":"13–255","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Day","anchor":"field-day","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.time.day","label":"day","evidence":"Unit: org.bluetooth.unit.time.day"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A86","uuidNumber":10886,"id":"org.bluetooth.characteristic.date_of_threshold_assessment","name":"Date of Threshold Assessment","slug":"date-of-threshold-assessment","hasPage":true,"file":"gss/org.bluetooth.characteristic.date_of_threshold_assessment.yaml","byteOrder":"little-endian","fields":[{"name":"Year","anchor":"field-year","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.time.year","label":"year","evidence":"Unit; org.bluetooth.unit.time.year"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Month","anchor":"field-month","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0","description":"Month is not known"},{"from":1,"to":1,"value":"1","description":"January"},{"from":2,"to":2,"value":"2","description":"February"},{"from":3,"to":3,"value":"3","description":"March"},{"from":4,"to":4,"value":"4","description":"April"},{"from":5,"to":5,"value":"5","description":"May"},{"from":6,"to":6,"value":"6","description":"June"},{"from":7,"to":7,"value":"7","description":"July"},{"from":8,"to":8,"value":"8","description":"August"},{"from":9,"to":9,"value":"9","description":"September"},{"from":10,"to":10,"value":"10","description":"October"},{"from":11,"to":11,"value":"11","description":"November"},{"from":12,"to":12,"value":"12","description":"December"},{"from":13,"to":255,"value":"13–255","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Day","anchor":"field-day","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.time.day","label":"day","evidence":"Unit: org.bluetooth.unit.time.day"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A87","uuidNumber":10887,"id":"org.bluetooth.characteristic.email_address","name":"Email Address","slug":"email-address","hasPage":false,"file":"gss/org.bluetooth.characteristic.email_address.yaml","byteOrder":"little-endian","fields":[{"name":"Email Address","anchor":"field-email-address","type":"utf8s","size":"variable","sizeKind":"variable","kind":"utf8","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"UTF-8 string","reason":null}],"unsupported":null},{"uuid":"0x2A88","uuidNumber":10888,"id":"org.bluetooth.characteristic.fat_burn_heart_rate_lower_limit","name":"Fat Burn Heart Rate Lower Limit","slug":"fat-burn-heart-rate-lower-limit","hasPage":false,"file":"gss/org.bluetooth.characteristic.fat_burn_heart_rate_lower_limit.yaml","byteOrder":"little-endian","fields":[{"name":"Fat Burn Heart Rate Lower Limit","anchor":"field-fat-burn-heart-rate-lower-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A89","uuidNumber":10889,"id":"org.bluetooth.characteristic.fat_burn_heart_rate_upper_limit","name":"Fat Burn Heart Rate Upper Limit","slug":"fat-burn-heart-rate-upper-limit","hasPage":false,"file":"gss/org.bluetooth.characteristic.fat_burn_heart_rate_upper_limit.yaml","byteOrder":"little-endian","fields":[{"name":"Fat Burn Heart Rate Upper Limit","anchor":"field-fat-burn-heart-rate-upper-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A8A","uuidNumber":10890,"id":"org.bluetooth.characteristic.first_name","name":"First Name","slug":"first-name","hasPage":false,"file":"gss/org.bluetooth.characteristic.first_name.yaml","byteOrder":"little-endian","fields":[{"name":"First Name","anchor":"field-first-name","type":"utf8s","size":"variable","sizeKind":"variable","kind":"utf8","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"UTF-8 string","reason":null}],"unsupported":null},{"uuid":"0x2A8B","uuidNumber":10891,"id":"org.bluetooth.characteristic.five_zone_heart_rate_limits","name":"Five Zone Heart Rate Limits","slug":"five-zone-heart-rate-limits","hasPage":true,"file":"gss/org.bluetooth.characteristic.five_zone_heart_rate_limits.yaml","byteOrder":"little-endian","fields":[{"name":"Five Zone Heart Rate Limits - Very Light / Light Limit","anchor":"field-five-zone-heart-rate-limits-very-light-light-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Five Zone Heart Rate Limits - Light / Moderate Limit","anchor":"field-five-zone-heart-rate-limits-light-moderate-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Five Zone Heart Rate Limits - Moderate / Hard Limit","anchor":"field-five-zone-heart-rate-limits-moderate-hard-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Five Zone Heart Rate Limits - Hard / Maximum Limit","anchor":"field-five-zone-heart-rate-limits-hard-maximum-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A8C","uuidNumber":10892,"id":"org.bluetooth.characteristic.gender","name":"Gender","slug":"gender","hasPage":false,"file":"gss/org.bluetooth.characteristic.gender.yaml","byteOrder":"little-endian","fields":[{"name":"Gender","anchor":"field-gender","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"0: Male 1: Female 2: Unspecified 3–255: Reserved for Future Use","reason":null}],"unsupported":null},{"uuid":"0x2A8D","uuidNumber":10893,"id":"org.bluetooth.characteristic.heart_rate_max","name":"Heart Rate Max","slug":"heart-rate-max","hasPage":false,"file":"gss/org.bluetooth.characteristic.heart_rate_max.yaml","byteOrder":"little-endian","fields":[{"name":"Heart Rate Max","anchor":"field-heart-rate-max","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A8E","uuidNumber":10894,"id":"org.bluetooth.characteristic.height","name":"Height","slug":"height","hasPage":false,"file":"gss/org.bluetooth.characteristic.height.yaml","byteOrder":"little-endian","fields":[{"name":"Height","anchor":"field-height","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.length.meter","label":"meter","evidence":"Base Unit: org.bluetooth.unit.length.meter"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 0.01 meter.","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A8F","uuidNumber":10895,"id":"org.bluetooth.characteristic.hip_circumference","name":"Hip Circumference","slug":"hip-circumference","hasPage":false,"file":"gss/org.bluetooth.characteristic.hip_circumference.yaml","byteOrder":"little-endian","fields":[{"name":"Hip Circumference","anchor":"field-hip-circumference","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.length.meter","label":"meter","evidence":"Base Unit: org.bluetooth.unit.length.meter"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 0.01 meter.","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A90","uuidNumber":10896,"id":"org.bluetooth.characteristic.last_name","name":"Last Name","slug":"last-name","hasPage":false,"file":"gss/org.bluetooth.characteristic.last_name.yaml","byteOrder":"little-endian","fields":[{"name":"Last Name","anchor":"field-last-name","type":"utf8s","size":"variable","sizeKind":"variable","kind":"utf8","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"UTF-8 string","reason":null}],"unsupported":null},{"uuid":"0x2A91","uuidNumber":10897,"id":"org.bluetooth.characteristic.maximum_recommended_heart_rate","name":"Maximum Recommended Heart Rate","slug":"maximum-recommended-heart-rate","hasPage":false,"file":"gss/org.bluetooth.characteristic.maximum_recommended_heart_rate.yaml","byteOrder":"little-endian","fields":[{"name":"Maximum Recommended Heart Rate","anchor":"field-maximum-recommended-heart-rate","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A92","uuidNumber":10898,"id":"org.bluetooth.characteristic.resting_heart_rate","name":"Resting Heart Rate","slug":"resting-heart-rate","hasPage":false,"file":"gss/org.bluetooth.characteristic.resting_heart_rate.yaml","byteOrder":"little-endian","fields":[{"name":"Resting Heart Rate","anchor":"field-resting-heart-rate","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A93","uuidNumber":10899,"id":"org.bluetooth.characteristic.sport_type_for_aerobic_and_anaerobic_thresholds","name":"Sport Type for Aerobic and Anaerobic Thresholds","slug":"sport-type-for-aerobic-and-anaerobic-thresholds","hasPage":false,"file":"gss/org.bluetooth.characteristic.sport_type_for_aerobic_and_anaerobic_thresholds.yaml","byteOrder":"little-endian","fields":[{"name":"Sport Type for Aerobic and Anaerobic Thresholds","anchor":"field-sport-type-for-aerobic-and-anaerobic-thresholds","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0","description":"Unspecified"},{"from":1,"to":1,"value":"1","description":"Running (Treadmill)"},{"from":2,"to":2,"value":"2","description":"Cycling (Ergometer)"},{"from":3,"to":3,"value":"3","description":"Rowing (Ergometer)"},{"from":4,"to":4,"value":"4","description":"Cross Training (Elliptical)"},{"from":5,"to":5,"value":"5","description":"Climbing"},{"from":6,"to":6,"value":"6","description":"Skiing"},{"from":7,"to":7,"value":"7","description":"Skating"},{"from":8,"to":8,"value":"8","description":"Arm exercising"},{"from":9,"to":9,"value":"9","description":"Lower body exercising"},{"from":10,"to":10,"value":"10","description":"Upper body exercising"},{"from":11,"to":11,"value":"11","description":"Whole body exercising"},{"from":12,"to":255,"value":"12–255","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A94","uuidNumber":10900,"id":"org.bluetooth.characteristic.three_zone_heart_rate_limits","name":"Three Zone Heart Rate Limits","slug":"three-zone-heart-rate-limits","hasPage":true,"file":"gss/org.bluetooth.characteristic.three_zone_heart_rate_limits.yaml","byteOrder":"little-endian","fields":[{"name":"Three Zone Heart Rate Limits - Light (Fat burn) / Moderate (Aerobic) Limit","anchor":"field-three-zone-heart-rate-limits-light-fat-burn-moderate-aerobic-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Three Zone Heart Rate Limits - Moderate (Aerobic) / Hard (Anaerobic) Limit","anchor":"field-three-zone-heart-rate-limits-moderate-aerobic-hard-anaerobic-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A95","uuidNumber":10901,"id":"org.bluetooth.characteristic.two_zone_heart_rate_limits","name":"Two Zone Heart Rate Limits","slug":"two-zone-heart-rate-limits","hasPage":false,"file":"gss/org.bluetooth.characteristic.two_zone_heart_rate_limits.yaml","byteOrder":"little-endian","fields":[{"name":"Two Zone Heart Rate Limit - Fat Burn / Fitness Limit","anchor":"field-two-zone-heart-rate-limit-fat-burn-fitness-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A96","uuidNumber":10902,"id":"org.bluetooth.characteristic.vo2_max","name":"VO2 Max","slug":"vo2-max","hasPage":false,"file":"gss/org.bluetooth.characteristic.vo2_max.yaml","byteOrder":"little-endian","fields":[{"name":"VO2 Max","anchor":"field-vo2-max","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.transfer_rate.milliliter_per_kilogram_per_minute","label":"per kilogram per minute","evidence":"Unit: org.bluetooth.unit.transfer_rate.milliliter_per_kilogram_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A97","uuidNumber":10903,"id":"org.bluetooth.characteristic.waist_circumference","name":"Waist Circumference","slug":"waist-circumference","hasPage":false,"file":"gss/org.bluetooth.characteristic.waist_circumference.yaml","byteOrder":"little-endian","fields":[{"name":"Waist Circumference","anchor":"field-waist-circumference","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.length.meter","label":"meter","evidence":"Base Unit: org.bluetooth.unit.length.meter"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 0.01 meter.","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A98","uuidNumber":10904,"id":"org.bluetooth.characteristic.weight","name":"Weight","slug":"weight","hasPage":false,"file":"gss/org.bluetooth.characteristic.weight.yaml","byteOrder":"little-endian","fields":[{"name":"Weight","anchor":"field-weight","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.mass.kilogram","label":"kilogram","evidence":"Base Unit: org.bluetooth.unit.mass.kilogram"},"scale":{"M":5,"d":-3,"b":0,"factor":0.005,"evidence":"Represented values: M = 5, d = -3, b = 0","unitIs":"Unit is 0.005 kilogram.","unitIsFactor":0.005,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A9B","uuidNumber":10907,"id":"org.bluetooth.characteristic.body_composition_feature","name":"Body Composition Feature","slug":"body-composition-feature","hasPage":false,"file":"gss/org.bluetooth.characteristic.body_composition_feature.yaml","byteOrder":"little-endian","fields":[{"name":"Body Composition Feature","anchor":"field-body-composition-feature","type":"boolean[32]","size":"4","sizeKind":"fixed","kind":"bits","width":4,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Time Stamp Supported","reserved":false},{"bits":[1],"label":"1","description":"Multiple Users Supported","reserved":false},{"bits":[2],"label":"2","description":"Basal Metabolism Supported","reserved":false},{"bits":[3],"label":"3","description":"Muscle Percentage Supported","reserved":false},{"bits":[4],"label":"4","description":"Muscle Mass Supported","reserved":false},{"bits":[5],"label":"5","description":"Fat Free Mass Supported","reserved":false},{"bits":[6],"label":"6","description":"Soft Lean Mass Supported","reserved":false},{"bits":[7],"label":"7","description":"Body Water Mass Supported","reserved":false},{"bits":[8],"label":"8","description":"Impedance Supported","reserved":false},{"bits":[9],"label":"9","description":"Weight Supported","reserved":false},{"bits":[10],"label":"10","description":"Height Supported","reserved":false},{"bits":[11,12,13,14],"label":"11–14","description":"Weight Measurement Resolution\n0b0000 = Not specified\n0b0001 = Resolution of 0.5 kg or 1 lb.\n0b0010 = Resolution of 0.2 kg or 0.5 lb.\n0b0011 = Resolution of 0.1 kg or 0.2 lb.\n0b0100 = Resolution of 0.05 kg or 0.1 lb.\n0b0101 = Resolution of 0.02 kg or 0.05 lb.\n0b0110 = Resolution of 0.01 kg or 0.02 lb.\n0b0111 = Resolution of 0.005 kg or 0.01 lb.\nAll other values = Reserved for Future Use","reserved":true},{"bits":[15,16,17],"label":"15–17","description":"Height Measurement Resolution\n0b000 = Not specified\n0b001 = Resolution of 0.01 meter or 1 inch\n0b010 = Resolution of 0.005 meter or 0.5 inch\n0b011 = Resolution of 0.001 meter or 0.1 inch\nAll other values = Reserved for Future Use","reserved":true},{"bits":[18,19,20,21,22,23,24,25,26,27,28,29,30,31],"label":"18–31","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A9C","uuidNumber":10908,"id":"org.bluetooth.characteristic.body_composition_measurement","name":"Body Composition Measurement","slug":"body-composition-measurement","hasPage":true,"file":"gss/org.bluetooth.characteristic.body_composition_measurement.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[16]","size":"2","sizeKind":"fixed","kind":"bits","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Measurement Units:\n0 = SI (Weight and Mass in units of kilogram (kg) and Height in units of meter)\n1 = Imperial (Weight and Mass in units of pound (lb) and Height in units of inch (in))","reserved":false},{"bits":[1],"label":"1","description":"Time Stamp present","reserved":false},{"bits":[2],"label":"2","description":"User ID present","reserved":false},{"bits":[3],"label":"3","description":"Basal Metabolism present","reserved":false},{"bits":[4],"label":"4","description":"Muscle Percentage present","reserved":false},{"bits":[5],"label":"5","description":"Muscle Mass present","reserved":false},{"bits":[6],"label":"6","description":"Fat Free Mass present","reserved":false},{"bits":[7],"label":"7","description":"Soft Lean Mass present","reserved":false},{"bits":[8],"label":"8","description":"Body Water Mass present","reserved":false},{"bits":[9],"label":"9","description":"Impedance present","reserved":false},{"bits":[10],"label":"10","description":"Weight present","reserved":false},{"bits":[11],"label":"11","description":"Height present","reserved":false},{"bits":[12],"label":"12","description":"Multiple Packet Measurement","reserved":false},{"bits":[13,14,15],"label":"13–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Body Fat Percentage","anchor":"field-body-fat-percentage","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Base Unit: org.bluetooth.unit.percentage"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 of a percent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Time Stamp","anchor":"field-time-stamp","type":"struct","size":"0 or 7","sizeKind":"optional","kind":"struct","width":7,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Year","anchor":"field-year","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":0,"unit":null,"scale":null},{"name":"Month","anchor":"field-month","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":16,"unit":null,"scale":null},{"name":"Day","anchor":"field-day","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":24,"unit":null,"scale":null},{"name":"Hours","anchor":"field-hours","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":32,"unit":null,"scale":null},{"name":"Minutes","anchor":"field-minutes","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":40,"unit":null,"scale":null},{"name":"Seconds","anchor":"field-seconds","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":48,"unit":null,"scale":null}],"packed":false,"structNote":"Members from Date Time (0x2A08), which the field's text refers to.","prose":"Refer to the Date Time characteristic in \\autoref{sec:org.bluetooth.characteristic.date_time}","reason":null},{"name":"User ID","anchor":"field-user-id","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Basal Metabolism","anchor":"field-basal-metabolism","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.joule","label":"joule","evidence":"Base Unit: org.bluetooth.unit.energy.joule"},"scale":{"M":1,"d":3,"b":0,"factor":1000,"evidence":"Represented values: M = 1, d = 3, b = 0","unitIs":"Unit is kilojoules","unitIsFactor":null,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Muscle Percentage","anchor":"field-muscle-percentage","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Base Unit: org.bluetooth.unit.percentage"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 of a percent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Muscle Mass","anchor":"field-muscle-mass","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Fat Free Mass","anchor":"field-fat-free-mass","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":6,"value":1,"evidence":"Present if bit 6 of Flags field is set to 1"},"presenceText":"Present if bit 6 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Soft Lean Mass","anchor":"field-soft-lean-mass","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":7,"value":1,"evidence":"Present if bit 7 of Flags field is set to 1"},"presenceText":"Present if bit 7 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Body Water Mass","anchor":"field-body-water-mass","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Impedance","anchor":"field-impedance","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":9,"value":1,"evidence":"Present if bit 9 of Flags field is set to 1"},"presenceText":"Present if bit 9 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.electric_resistance.ohm","label":"ohm","evidence":"Base Unit: org.bluetooth.unit.electric_resistance.ohm"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 1/10 of an Ohm","unitIsFactor":0.1,"conflict":true},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Weight","anchor":"field-weight","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":10,"value":1,"evidence":"Present if bit 10 of Flags field is set to 1"},"presenceText":"Present if bit 10 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Height","anchor":"field-height","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":11,"value":1,"evidence":"Present if bit 11 of Flags field is set to 1"},"presenceText":"Present if bit 11 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2A9D","uuidNumber":10909,"id":"org.bluetooth.characteristic.weight_measurement","name":"Weight Measurement","slug":"weight-measurement","hasPage":true,"file":"gss/org.bluetooth.characteristic.weight_measurement.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Measurement Units:\n0 = SI (Weight and Mass in units of kilogram (kg) and Height in units of meter)\n1 = Imperial (Weight and Mass in units of pound (lb) and Height in units of inch (in))","reserved":false},{"bits":[1],"label":"1","description":"Time Stamp present","reserved":false},{"bits":[2],"label":"2","description":"User ID present","reserved":false},{"bits":[3],"label":"3","description":"BMI and Height present","reserved":false},{"bits":[4,5,6,7],"label":"4–7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Weight","anchor":"field-weight","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"This field is in kilograms with resolution 0.005 if the bit 0 of the Flag field is 0 or in pounds with a resolution of 0.01 if the bit 0 of the Flag field is 1.","reason":null},{"name":"Time Stamp","anchor":"field-time-stamp","type":"struct","size":"0 or 7","sizeKind":"optional","kind":"struct","width":7,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Year","anchor":"field-year","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":0,"unit":null,"scale":null},{"name":"Month","anchor":"field-month","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":16,"unit":null,"scale":null},{"name":"Day","anchor":"field-day","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":24,"unit":null,"scale":null},{"name":"Hours","anchor":"field-hours","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":32,"unit":null,"scale":null},{"name":"Minutes","anchor":"field-minutes","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":40,"unit":null,"scale":null},{"name":"Seconds","anchor":"field-seconds","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":48,"unit":null,"scale":null}],"packed":false,"structNote":"Members from Date Time (0x2A08), which the field's text refers to.","prose":"Refer to Date Time characteristic in \\autoref{sec:org.bluetooth.characteristic.date_time}","reason":null},{"name":"User ID","anchor":"field-user-id","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"The special value of 0xFF for User ID represents \"unknown user\".","reason":null},{"name":"BMI","anchor":"field-bmi","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.kilogram_per_square_metre","label":"kilogram per square metre","evidence":"Unit is 0.1 kg/m2 or org.bluetooth.unit.kilogram_per_square_metre"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 0.1 kg/m2 or org.bluetooth.unit.kilogram_per_square_metre","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Height","anchor":"field-height","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"This field is in meters with a resolution of 0.001 if the bit 0 of the Flag field is 0 or in inches with a resolution of 0.1 if the bit 0 of the Flag field is 1.","reason":null}],"unsupported":null},{"uuid":"0x2A9E","uuidNumber":10910,"id":"org.bluetooth.characteristic.weight_scale_feature","name":"Weight Scale Feature","slug":"weight-scale-feature","hasPage":false,"file":"gss/org.bluetooth.characteristic.weight_scale_feature.yaml","byteOrder":"little-endian","fields":[{"name":"Weight Scale Feature","anchor":"field-weight-scale-feature","type":"boolean[32]","size":"4","sizeKind":"fixed","kind":"bits","width":4,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Time Stamp Supported","reserved":false},{"bits":[1],"label":"1","description":"Multiple Users Supported","reserved":false},{"bits":[2],"label":"2","description":"BMI Supported","reserved":false},{"bits":[3,4,5,6],"label":"3–6","description":"Weight Measurement Resolution\n0b0000 = Not specified\n0b0001 = Resolution of 0.5 kg or 1 lb\n0b0010 = Resolution of 0.2 kg or 0.5 lb\n0b0011 = Resolution of 0.1 kg or 0.2 lb\n0b0100 = Resolution of 0.05 kg or 0.1 lb\n0b0101 = Resolution of 0.02 kg or 0.05 lb\n0b0110 = Resolution of 0.01 kg or 0.02 lb\n0b0111 = Resolution of 0.005 kg or 0.01 lb\n0b1000–0b1111 = Reserved for Future Use","reserved":true},{"bits":[7,8,9],"label":"7–9","description":"Height Measurement Resolution\n0b000 = Not specified\n0b001 = Resolution of 0.01 meter or 1 inch\n0b010 = Resolution of 0.005 meter or 0.5 inch\n0b011 = Resolution of 0.001 meter or 0.1 inch\n0b100–0b111 = Reserved for Future Use","reserved":true},{"bits":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],"label":"10–31","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2AA2","uuidNumber":10914,"id":"org.bluetooth.characteristic.language","name":"Language","slug":"language","hasPage":false,"file":"gss/org.bluetooth.characteristic.language.yaml","byteOrder":"little-endian","fields":[{"name":"Language","anchor":"field-language","type":"utf8s","size":"variable","sizeKind":"variable","kind":"utf8","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"UTF-8 string","reason":null}],"unsupported":null},{"uuid":"0x2AA7","uuidNumber":10919,"id":"org.bluetooth.characteristic.cgm_measurement","name":"CGM Measurement","slug":"cgm-measurement","hasPage":true,"file":"gss/org.bluetooth.characteristic.cgm_measurement.yaml","byteOrder":"little-endian","fields":[{"name":"CGM Measurement Record(s)","anchor":"field-cgm-measurement-record-s","type":"struct","size":"variable","sizeKind":"variable","kind":"unsupported","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"A sequence of one or more CGM Measurement Records, concatenated as defined by the service. The structure of a CGM Measurement Record is defined in \\autoref{sec:org.bluetooth.characteristic.cgm_measurement/field/cgm_measurement_record}.","reason":"CGM Measurement Record(s) › CGM Glucose Concentration: medfloat16 (2) is not a fixed-size integer this decoder reads"}],"unsupported":"CGM Measurement Record(s): CGM Measurement Record(s) › CGM Glucose Concentration: medfloat16 (2) is not a fixed-size integer this decoder reads"},{"uuid":"0x2AA8","uuidNumber":10920,"id":"org.bluetooth.characteristic.cgm_feature","name":"CGM Feature","slug":"cgm-feature","hasPage":true,"file":"gss/org.bluetooth.characteristic.cgm_feature.yaml","byteOrder":"little-endian","fields":[{"name":"CGM Feature","anchor":"field-cgm-feature","type":"boolean[24]","size":"3","sizeKind":"fixed","kind":"bits","width":3,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Calibration supported","reserved":false},{"bits":[1],"label":"1","description":"Patient High/Low Alerts supported","reserved":false},{"bits":[2],"label":"2","description":"Hypo Alerts supported","reserved":false},{"bits":[3],"label":"3","description":"Hyper Alerts supported","reserved":false},{"bits":[4],"label":"4","description":"Rate of Increase/Decrease Alerts supported","reserved":false},{"bits":[5],"label":"5","description":"Device Specific Alert supported","reserved":false},{"bits":[6],"label":"6","description":"Sensor Malfunction Detection supported","reserved":false},{"bits":[7],"label":"7","description":"Sensor Temperature High-Low Detection supported","reserved":false},{"bits":[8],"label":"8","description":"Sensor Result High-Low Detection supported","reserved":false},{"bits":[9],"label":"9","description":"Low Battery Detection supported","reserved":false},{"bits":[10],"label":"10","description":"Sensor Type Error Detection supported","reserved":false},{"bits":[11],"label":"11","description":"General Device Fault supported","reserved":false},{"bits":[12],"label":"12","description":"E2E-CRC supported","reserved":false},{"bits":[13],"label":"13","description":"Multiple Bond supported","reserved":false},{"bits":[14],"label":"14","description":"Multiple Sessions supported","reserved":false},{"bits":[15],"label":"15","description":"CGM Trend Information supported","reserved":false},{"bits":[16],"label":"16","description":"CGM Quality supported","reserved":false},{"bits":[17,18,19,20,21,22,23],"label":"17–23","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"CGM Type-Sample Location","anchor":"field-cgm-type-sample-location","type":"struct","size":"1","sizeKind":"fixed","kind":"struct","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Type","anchor":"def-cgm-type-sample-location--type","type":"uint4","kind":"uint","bitWidth":4,"bitOffset":0,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null},{"name":"Sample Location","anchor":"def-cgm-type-sample-location--sample-location","type":"uint4","kind":"uint","bitWidth":4,"bitOffset":4,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null}],"packed":true,"structNote":"The structure of this field is defined below.","prose":null,"reason":null},{"name":"E2E-CRC","anchor":"field-e2e-crc","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"CRC calculated over all data except the E2E-CRC field itself. See \\autoref{sec:crc_calculation} for details. If the service containing this characteristic does not support the E2E-CRC, this field typically has a value defined by the service such as 0xFFFF or any other value.","reason":null}],"unsupported":null},{"uuid":"0x2AA9","uuidNumber":10921,"id":"org.bluetooth.characteristic.cgm_status","name":"CGM Status","slug":"cgm-status","hasPage":true,"file":"gss/org.bluetooth.characteristic.cgm_status.yaml","byteOrder":"little-endian","fields":[{"name":"Time Offset","anchor":"field-time-offset","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"The Time Offset field specifies the time since the Session Start Time (see \\autoref{sec:org.bluetooth.characteristic.cgm_session_start_time}).","reason":null},{"name":"CGM Status","anchor":"field-cgm-status","type":"boolean[24]","size":"3","sizeKind":"fixed","kind":"bits","width":3,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"The structure of this field is identical to the structure of the combined Status fields as defined in \\autoref{sec:org.bluetooth.characteristic.cgm_measurement/field/sensor_status_annunciation}, but it always consists of three octets regardless of the value.","reason":null},{"name":"E2E-CRC","anchor":"field-e2e-crc","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":null,"presenceText":"Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"CRC calculated over all fields except the E2E-CRC field itself. See \\autoref{sec:crc_calculation} for details.","reason":"its condition is not a flags bit: \"Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1\""}],"unsupported":"E2E-CRC: its condition is not a flags bit: \"Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1\""},{"uuid":"0x2AAA","uuidNumber":10922,"id":"org.bluetooth.characteristic.cgm_session_start_time","name":"CGM Session Start Time","slug":"cgm-session-start-time","hasPage":true,"file":"gss/org.bluetooth.characteristic.cgm_session_start_time.yaml","byteOrder":"little-endian","fields":[{"name":"Session Start Time","anchor":"field-session-start-time","type":"struct","size":"7","sizeKind":"fixed","kind":"struct","width":7,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":[{"name":"Year","anchor":"field-year","type":"uint16","kind":"uint","bitWidth":16,"bitOffset":0,"unit":null,"scale":null},{"name":"Month","anchor":"field-month","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":16,"unit":null,"scale":null},{"name":"Day","anchor":"field-day","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":24,"unit":null,"scale":null},{"name":"Hours","anchor":"field-hours","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":32,"unit":null,"scale":null},{"name":"Minutes","anchor":"field-minutes","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":40,"unit":null,"scale":null},{"name":"Seconds","anchor":"field-seconds","type":"uint8","kind":"uint","bitWidth":8,"bitOffset":48,"unit":null,"scale":null}],"packed":false,"structNote":"Members from Date Time (0x2A08), which the field's text refers to.","prose":"Refer to the Date Time characteristic in \\autoref{sec:org.bluetooth.characteristic.date_time}","reason":null},{"name":"Time Zone","anchor":"field-time-zone","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Refer to the Time Zone characteristic in \\autoref{sec:org.bluetooth.characteristic.time_zone}","reason":null},{"name":"DST Offset","anchor":"field-dst-offset","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Refer to the DST Offset characteristic in \\autoref{sec:org.bluetooth.characteristic.dst_offset}","reason":null},{"name":"E2E-CRC","anchor":"field-e2e-crc","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":null,"presenceText":"Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"CRC calculated over all fields. See \\autoref{sec:crc_calculation} for details.","reason":"its condition is not a flags bit: \"Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1\""}],"unsupported":"E2E-CRC: its condition is not a flags bit: \"Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1\""},{"uuid":"0x2AAB","uuidNumber":10923,"id":"org.bluetooth.characteristic.cgm_session_run_time","name":"CGM Session Run Time","slug":"cgm-session-run-time","hasPage":true,"file":"gss/org.bluetooth.characteristic.cgm_session_run_time.yaml","byteOrder":"little-endian","fields":[{"name":"CGM Session Run Time","anchor":"field-cgm-session-run-time","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.time.hour","label":"hour","evidence":"Unit: org.bluetooth.unit.time.hour"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"E2E-CRC","anchor":"field-e2e-crc","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":null,"presenceText":"Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"CRC calculated over all fields. See \\autoref{sec:crc_calculation} for details.","reason":"its condition is not a flags bit: \"Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1\""}],"unsupported":"E2E-CRC: its condition is not a flags bit: \"Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1\""},{"uuid":"0x2AAC","uuidNumber":10924,"id":"org.bluetooth.characteristic.cgm_specific_ops_control_point","name":"CGM Specific Ops Control Point","slug":"cgm-specific-ops-control-point","hasPage":true,"file":"gss/org.bluetooth.characteristic.cgm_specific_ops_control_point.yaml","byteOrder":"little-endian","fields":[{"name":"Op Code","anchor":"field-op-code","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Operand","anchor":"field-operand","type":"struct","size":"0 … 17","sizeKind":"variable","kind":"unsupported","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"no struct definition for Operand in the SIG's file"},{"name":"E2E-CRC","anchor":"field-e2e-crc","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":null,"presenceText":"Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"CRC calculated over all fields except the E2E-CRC field itself. See \\autoref{sec:crc_calculation} for details.","reason":"its condition is not a flags bit: \"Present if E2E-CRC Supported bit in CGM Feature characteristic is set to 1\""}],"unsupported":"Operand: no struct definition for Operand in the SIG's file"},{"uuid":"0x2ACD","uuidNumber":10957,"id":"org.bluetooth.characteristic.treadmill_data","name":"Treadmill Data","slug":"treadmill-data","hasPage":true,"file":"gss/org.bluetooth.characteristic.treadmill_data.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[16]","size":"2","sizeKind":"fixed","kind":"bits","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"More Data","reserved":false},{"bits":[1],"label":"1","description":"Average Speed present","reserved":false},{"bits":[2],"label":"2","description":"Total Distance present","reserved":false},{"bits":[3],"label":"3","description":"Inclination and Ramp Angle Setting present","reserved":false},{"bits":[4],"label":"4","description":"Elevation Gain present","reserved":false},{"bits":[5],"label":"5","description":"Instantaneous Pace present","reserved":false},{"bits":[6],"label":"6","description":"Average Pace present","reserved":false},{"bits":[7],"label":"7","description":"Expended Energy present","reserved":false},{"bits":[8],"label":"8","description":"Heart Rate present","reserved":false},{"bits":[9],"label":"9","description":"Metabolic Equivalent present","reserved":false},{"bits":[10],"label":"10","description":"Elapsed Time present","reserved":false},{"bits":[11],"label":"11","description":"Remaining Time present","reserved":false},{"bits":[12],"label":"12","description":"Force On Belt and Power Output present","reserved":false},{"bits":[13,14,15],"label":"13–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Speed","anchor":"field-instantaneous-speed","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.velocity.kilometre_per_hour","label":"kilometre per hour","evidence":"Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 1/100 of a kilometer per hour","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Speed","anchor":"field-average-speed","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.velocity.kilometre_per_hour","label":"kilometre per hour","evidence":"Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 1/100 of a kilometer per hour","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Distance","anchor":"field-total-distance","type":"uint24","size":"0 or 3","sizeKind":"optional","kind":"uint","width":3,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Unit: org.bluetooth.unit.length.metre"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Inclination","anchor":"field-inclination","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Base Unit: org.bluetooth.unit.percentage"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 of a percent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Ramp Angle Setting","anchor":"field-ramp-angle-setting","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.plane_angle.degree","label":"degree","evidence":"Base Unit: org.bluetooth.unit.plane_angle.degree"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 of a degree","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Positive Elevation Gain","anchor":"field-positive-elevation-gain","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Base Unit: org.bluetooth.unit.length.metre"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 of a meter","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Negative Elevation Gain","anchor":"field-negative-elevation-gain","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Base Unit: org.bluetooth.unit.length.metre"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 of a meter","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Pace (Time per 500 meters)","anchor":"field-instantaneous-pace-time-per-500-meters","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Pace (Time per 500 meters)","anchor":"field-average-pace-time-per-500-meters","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":6,"value":1,"evidence":"Present if bit 6 of Flags field is set to 1"},"presenceText":"Present if bit 6 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Energy","anchor":"field-total-energy","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":7,"value":1,"evidence":"Present if bit 7 of Flags field is set to 1"},"presenceText":"Present if bit 7 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Hour","anchor":"field-energy-per-hour","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":7,"value":1,"evidence":"Present if bit 7 of Flags field is set to 1"},"presenceText":"Present if bit 7 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Minute","anchor":"field-energy-per-minute","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":7,"value":1,"evidence":"Present if bit 7 of Flags field is set to 1"},"presenceText":"Present if bit 7 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Heart Rate","anchor":"field-heart-rate","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Metabolic Equivalent","anchor":"field-metabolic-equivalent","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":9,"value":1,"evidence":"Present if bit 9 of Flags field is set to 1"},"presenceText":"Present if bit 9 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.metabolic_equivalent","label":"metabolic equivalent","evidence":"Unit: org.bluetooth.unit.metabolic_equivalent"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Elapsed Time","anchor":"field-elapsed-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":10,"value":1,"evidence":"Present if bit 10 of Flags field is set to 1"},"presenceText":"Present if bit 10 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Remaining Time","anchor":"field-remaining-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":11,"value":1,"evidence":"Present if bit 11 of Flags field is set to 1"},"presenceText":"Present if bit 11 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Force On Belt","anchor":"field-force-on-belt","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":12,"value":1,"evidence":"Present if bit 12 of Flags field is set to 1"},"presenceText":"Present if bit 12 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.force.newton","label":"newton","evidence":"Unit: org.bluetooth.unit.force.newton"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Power Output","anchor":"field-power-output","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":12,"value":1,"evidence":"Present if bit 12 of Flags field is set to 1"},"presenceText":"Present if bit 12 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.power.watt","label":"watt","evidence":"Unit: org.bluetooth.unit.power.watt"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2ACE","uuidNumber":10958,"id":"org.bluetooth.characteristic.cross_trainer_data","name":"Cross Trainer Data","slug":"cross-trainer-data","hasPage":true,"file":"gss/org.bluetooth.characteristic.cross_trainer_data.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[24]","size":"3","sizeKind":"fixed","kind":"bits","width":3,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"More Data","reserved":false},{"bits":[1],"label":"1","description":"Average Speed present","reserved":false},{"bits":[2],"label":"2","description":"Total Distance present","reserved":false},{"bits":[3],"label":"3","description":"Step Count present","reserved":false},{"bits":[4],"label":"4","description":"Stride Count present","reserved":false},{"bits":[5],"label":"5","description":"Elevation Gain present","reserved":false},{"bits":[6],"label":"6","description":"Inclination and Ramp Angle Setting present","reserved":false},{"bits":[7],"label":"7","description":"Resistance Level present","reserved":false},{"bits":[8],"label":"8","description":"Instantaneous Power present","reserved":false},{"bits":[9],"label":"9","description":"Average Power present","reserved":false},{"bits":[10],"label":"10","description":"Expended Energy present","reserved":false},{"bits":[11],"label":"11","description":"Heart Rate present","reserved":false},{"bits":[12],"label":"12","description":"Metabolic Equivalent present","reserved":false},{"bits":[13],"label":"13","description":"Elapsed Time present","reserved":false},{"bits":[14],"label":"14","description":"Remaining Time present","reserved":false},{"bits":[15],"label":"15","description":"Movement Direction:\n0 = Forward\n1 = Backward","reserved":false},{"bits":[16,17,18,19,20,21,22,23],"label":"16–23","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Speed","anchor":"field-instantaneous-speed","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.velocity.kilometre_per_hour","label":"kilometre per hour","evidence":"Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 1/100 of a kilometer per hour","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Speed","anchor":"field-average-speed","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.velocity.kilometre_per_hour","label":"kilometre per hour","evidence":"Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 1/100 of a kilometer per hour","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Distance","anchor":"field-total-distance","type":"uint24","size":"0 or 3","sizeKind":"optional","kind":"uint","width":3,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Unit: org.bluetooth.unit.length.metre"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Steps Per Minute","anchor":"field-steps-per-minute","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.step_per_minute","label":"per minute","evidence":"Unit: org.bluetooth.unit.step_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Step Rate","anchor":"field-average-step-rate","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.step_per_minute","label":"per minute","evidence":"Unit: org.bluetooth.unit.step_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Stride Count","anchor":"field-stride-count","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Base Unit: org.bluetooth.unit.unitless"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Positive Elevation Gain","anchor":"field-positive-elevation-gain","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Unit: org.bluetooth.unit.length.metre"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Negative Elevation Gain","anchor":"field-negative-elevation-gain","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Unit: org.bluetooth.unit.length.metre"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Inclination","anchor":"field-inclination","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":6,"value":1,"evidence":"Present if bit 6 of Flags field is set to 1"},"presenceText":"Present if bit 6 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Base Unit: org.bluetooth.unit.percentage"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 of a percent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Ramp Setting","anchor":"field-ramp-setting","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":6,"value":1,"evidence":"Present if bit 6 of Flags field is set to 1"},"presenceText":"Present if bit 6 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.plane_angle.degree","label":"degree","evidence":"Base Unit: org.bluetooth.unit.plane_angle.degree"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 of a degree","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Resistance Level","anchor":"field-resistance-level","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":7,"value":1,"evidence":"Present if bit 7 of Flags field is set to 1"},"presenceText":"Present if bit 7 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Base Unit: org.bluetooth.unit.unitless"},"scale":{"M":1,"d":1,"b":0,"factor":10,"evidence":"Represented values: M = 1, d = 1, b = 0","unitIs":"Unit is 1","unitIsFactor":1,"conflict":true},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Power","anchor":"field-instantaneous-power","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.power.watt","label":"watt","evidence":"Unit: org.bluetooth.unit.power.watt"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Power","anchor":"field-average-power","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":9,"value":1,"evidence":"Present if bit 9 of Flags field is set to 1"},"presenceText":"Present if bit 9 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.power.watt","label":"watt","evidence":"Unit: org.bluetooth.unit.power.watt"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Energy","anchor":"field-total-energy","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":10,"value":1,"evidence":"Present if bit 10 of Flags field is set to 1"},"presenceText":"Present if bit 10 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Hour","anchor":"field-energy-per-hour","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":10,"value":1,"evidence":"Present if bit 10 of Flags field is set to 1"},"presenceText":"Present if bit 10 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Minute","anchor":"field-energy-per-minute","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":10,"value":1,"evidence":"Present if bit 10 of Flags field is set to 1"},"presenceText":"Present if bit 10 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Heart Rate","anchor":"field-heart-rate","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":11,"value":1,"evidence":"Present if bit 11 of Flags field is set to 1"},"presenceText":"Present if bit 11 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Metabolic Equivalent","anchor":"field-metabolic-equivalent","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":12,"value":1,"evidence":"Present if bit 12 of Flags field is set to 1"},"presenceText":"Present if bit 12 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.metabolic_equivalent","label":"metabolic equivalent","evidence":"Base Unit: org.bluetooth.unit.metabolic_equivalent"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 metabolic equivalent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Elapsed Time","anchor":"field-elapsed-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":13,"value":1,"evidence":"Present if bit 13 of Flags field is set to 1"},"presenceText":"Present if bit 13 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Remaining Time","anchor":"field-remaining-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":14,"value":1,"evidence":"Present if bit 14 of Flags field is set to 1"},"presenceText":"Present if bit 14 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2ACF","uuidNumber":10959,"id":"org.bluetooth.characteristic.step_climber_data","name":"Step Climber Data","slug":"step-climber-data","hasPage":true,"file":"gss/org.bluetooth.characteristic.step_climber_data.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[16]","size":"2","sizeKind":"fixed","kind":"bits","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"More Data","reserved":false},{"bits":[1],"label":"1","description":"Steps Per Minute present","reserved":false},{"bits":[2],"label":"2","description":"Average Step Rate present","reserved":false},{"bits":[3],"label":"3","description":"Positive Elevation Gain present","reserved":false},{"bits":[4],"label":"4","description":"Expended Energy present","reserved":false},{"bits":[5],"label":"5","description":"Heart Rate present:","reserved":false},{"bits":[6],"label":"6","description":"Metabolic Equivalent present","reserved":false},{"bits":[7],"label":"7","description":"Elapsed Time present","reserved":false},{"bits":[8],"label":"8","description":"Remaining Time present","reserved":false},{"bits":[9,10,11,12,13,14,15],"label":"9–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Floors","anchor":"field-floors","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Step Count","anchor":"field-step-count","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Steps Per Minute","anchor":"field-steps-per-minute","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.step_per_minute","label":"per minute","evidence":"Unit: org.bluetooth.unit.step_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Step Rate","anchor":"field-average-step-rate","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.step_per_minute","label":"per minute","evidence":"Unit: org.bluetooth.unit.step_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Positive Elevation Gain","anchor":"field-positive-elevation-gain","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Unit: org.bluetooth.unit.length.metre"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Energy","anchor":"field-total-energy","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Hour","anchor":"field-energy-per-hour","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Minute","anchor":"field-energy-per-minute","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Heart Rate","anchor":"field-heart-rate","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Metabolic Equivalent","anchor":"field-metabolic-equivalent","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":6,"value":1,"evidence":"Present if bit 6 of Flags field is set to 1"},"presenceText":"Present if bit 6 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.metabolic_equivalent","label":"metabolic equivalent","evidence":"Base Unit: org.bluetooth.unit.metabolic_equivalent"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 metabolic equivalent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Elapsed Time","anchor":"field-elapsed-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":7,"value":1,"evidence":"Present if bit 7 of Flags field is set to 1"},"presenceText":"Present if bit 7 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Remaining Time","anchor":"field-remaining-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2AD0","uuidNumber":10960,"id":"org.bluetooth.characteristic.stair_climber_data","name":"Stair Climber Data","slug":"stair-climber-data","hasPage":true,"file":"gss/org.bluetooth.characteristic.stair_climber_data.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[16]","size":"2","sizeKind":"fixed","kind":"bits","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"More Data","reserved":false},{"bits":[1],"label":"1","description":"Steps Per Minute present","reserved":false},{"bits":[2],"label":"2","description":"Average Step Rate present","reserved":false},{"bits":[3],"label":"3","description":"Positive Elevation Gain present","reserved":false},{"bits":[4],"label":"4","description":"Stride Count present","reserved":false},{"bits":[5],"label":"5","description":"Expended Energy present","reserved":false},{"bits":[6],"label":"6","description":"Heart Rate present","reserved":false},{"bits":[7],"label":"7","description":"Metabolic Equivalent present","reserved":false},{"bits":[8],"label":"8","description":"Elapsed Time present","reserved":false},{"bits":[9],"label":"9","description":"Remaining Time present","reserved":false},{"bits":[10,11,12,13,14,15],"label":"10–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Floors","anchor":"field-floors","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Steps Per Minute","anchor":"field-steps-per-minute","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.step_per_minute","label":"per minute","evidence":"Unit: org.bluetooth.unit.step_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Step Rate","anchor":"field-average-step-rate","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.step_per_minute","label":"per minute","evidence":"Unit: org.bluetooth.unit.step_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Positive Elevation Gain","anchor":"field-positive-elevation-gain","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Unit: org.bluetooth.unit.length.metre"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Stride Count","anchor":"field-stride-count","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Energy","anchor":"field-total-energy","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Hour","anchor":"field-energy-per-hour","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Minute","anchor":"field-energy-per-minute","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Heart Rate","anchor":"field-heart-rate","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":6,"value":1,"evidence":"Present if bit 6 of Flags field is set to 1"},"presenceText":"Present if bit 6 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Metabolic Equivalent","anchor":"field-metabolic-equivalent","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":7,"value":1,"evidence":"Present if bit 7 of Flags field is set to 1"},"presenceText":"Present if bit 7 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.metabolic_equivalent","label":"metabolic equivalent","evidence":"Base Unit: org.bluetooth.unit.metabolic_equivalent"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 metabolic equivalent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Elapsed Time","anchor":"field-elapsed-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Remaining Time","anchor":"field-remaining-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":9,"value":1,"evidence":"Present if bit 9 of Flags field is set to 1"},"presenceText":"Present if bit 9 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2AD1","uuidNumber":10961,"id":"org.bluetooth.characteristic.rower_data","name":"Rower Data","slug":"rower-data","hasPage":true,"file":"gss/org.bluetooth.characteristic.rower_data.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[16]","size":"2","sizeKind":"fixed","kind":"bits","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"More Data","reserved":false},{"bits":[1],"label":"1","description":"Average Stroke rate present","reserved":false},{"bits":[2],"label":"2","description":"Total Distance present","reserved":false},{"bits":[3],"label":"3","description":"Instantaneous Pace present","reserved":false},{"bits":[4],"label":"4","description":"Average Pace present","reserved":false},{"bits":[5],"label":"5","description":"Instantaneous Power present","reserved":false},{"bits":[6],"label":"6","description":"Average Power present","reserved":false},{"bits":[7],"label":"7","description":"Resistance Level present","reserved":false},{"bits":[8],"label":"8","description":"Expended Energy present","reserved":false},{"bits":[9],"label":"9","description":"Heart Rate present","reserved":false},{"bits":[10],"label":"10","description":"Metabolic Equivalent present","reserved":false},{"bits":[11],"label":"11","description":"Elapsed Time present","reserved":false},{"bits":[12],"label":"12","description":"Remaining Time present","reserved":false},{"bits":[13,14,15],"label":"13–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Stroke Rate","anchor":"field-stroke-rate","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.stroke_per_minute","label":"per minute","evidence":"Base Unit: org.bluetooth.unit.stroke_per_minute"},"scale":{"M":1,"d":0,"b":-1,"factor":0.5,"evidence":"Represented values: M = 1, d = 0, b = -1","unitIs":"Unit is 1/2 of a stroke per minute","unitIsFactor":0.5,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Stroke Count","anchor":"field-stroke-count","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Stroke Rate","anchor":"field-average-stroke-rate","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.stroke_per_minute","label":"per minute","evidence":"Base Unit: org.bluetooth.unit.stroke_per_minute"},"scale":{"M":1,"d":0,"b":-1,"factor":0.5,"evidence":"Represented values: M = 1, d = 0, b = -1","unitIs":"Unit is 1/2 of a stroke per minute","unitIsFactor":0.5,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Distance","anchor":"field-total-distance","type":"uint24","size":"0 or 3","sizeKind":"optional","kind":"uint","width":3,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Unit: org.bluetooth.unit.length.metre"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Pace (Time per 500 meters)","anchor":"field-instantaneous-pace-time-per-500-meters","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Pace (Time per 500 meters)","anchor":"field-average-pace-time-per-500-meters","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Power","anchor":"field-instantaneous-power","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.power.watt","label":"watt","evidence":"Unit: org.bluetooth.unit.power.watt"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Power","anchor":"field-average-power","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":6,"value":1,"evidence":"Present if bit 6 of Flags field is set to 1"},"presenceText":"Present if bit 6 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.power.watt","label":"watt","evidence":"Unit: org.bluetooth.unit.power.watt"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Resistance Level","anchor":"field-resistance-level","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":7,"value":1,"evidence":"Present if bit 7 of Flags field is set to 1"},"presenceText":"Present if bit 7 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Base Unit: org.bluetooth.unit.unitless"},"scale":{"M":1,"d":1,"b":0,"factor":10,"evidence":"Represented values: M = 1, d = 1, b = 0","unitIs":"Unit is 1","unitIsFactor":1,"conflict":true},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Energy","anchor":"field-total-energy","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Hour","anchor":"field-energy-per-hour","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Minute","anchor":"field-energy-per-minute","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Heart Rate","anchor":"field-heart-rate","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":9,"value":1,"evidence":"Present if bit 9 of Flags field is set to 1"},"presenceText":"Present if bit 9 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Metabolic Equivalent","anchor":"field-metabolic-equivalent","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":10,"value":1,"evidence":"Present if bit 10 of Flags field is set to 1"},"presenceText":"Present if bit 10 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.metabolic_equivalent","label":"metabolic equivalent","evidence":"Base Unit: org.bluetooth.unit.metabolic_equivalent"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 metabolic equivalent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Elapsed Time","anchor":"field-elapsed-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":11,"value":1,"evidence":"Present if bit 11 of Flags field is set to 1"},"presenceText":"Present if bit 11 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Remaining Time","anchor":"field-remaining-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":12,"value":1,"evidence":"Present if bit 12 of Flags field is set to 1"},"presenceText":"Present if bit 12 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2AD2","uuidNumber":10962,"id":"org.bluetooth.characteristic.indoor_bike_data","name":"Indoor Bike Data","slug":"indoor-bike-data","hasPage":true,"file":"gss/org.bluetooth.characteristic.indoor_bike_data.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[16]","size":"2","sizeKind":"fixed","kind":"bits","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"More Data","reserved":false},{"bits":[1],"label":"1","description":"Average Speed present","reserved":false},{"bits":[2],"label":"2","description":"Instantaneous Cadence present","reserved":false},{"bits":[3],"label":"3","description":"Average Cadence present","reserved":false},{"bits":[4],"label":"4","description":"Total Distance present","reserved":false},{"bits":[5],"label":"5","description":"Resistance Level present","reserved":false},{"bits":[6],"label":"6","description":"Instantaneous Power present","reserved":false},{"bits":[7],"label":"7","description":"Average Power present","reserved":false},{"bits":[8],"label":"8","description":"Expended Energy present","reserved":false},{"bits":[9],"label":"9","description":"Heart Rate present","reserved":false},{"bits":[10],"label":"10","description":"Metabolic Equivalent present","reserved":false},{"bits":[11],"label":"11","description":"Elapsed Time present","reserved":false},{"bits":[12],"label":"12","description":"Remaining Time present","reserved":false},{"bits":[13,14,15],"label":"13–15","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Speed","anchor":"field-instantaneous-speed","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":{"id":"org.bluetooth.unit.velocity.kilometre_per_hour","label":"kilometre per hour","evidence":"Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 1/100 of a kilometer per hour","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Speed","anchor":"field-average-speed","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.velocity.kilometre_per_hour","label":"kilometre per hour","evidence":"Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 1/100 of a kilometer per hour","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Cadence","anchor":"field-instantaneous-cadence","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.angular_velocity.revolution_per_minute","label":"revolution per minute","evidence":"Base Unit: org.bluetooth.unit.angular_velocity.revolution_per_minute"},"scale":{"M":1,"d":0,"b":-1,"factor":0.5,"evidence":"Represented values: M = 1, d = 0, b = -1","unitIs":"Unit is 1/2 of a revolution per minute","unitIsFactor":0.5,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Cadence","anchor":"field-average-cadence","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.angular_velocity.revolution_per_minute","label":"revolution per minute","evidence":"Base Unit: org.bluetooth.unit.angular_velocity.revolution_per_minute"},"scale":{"M":1,"d":0,"b":-1,"factor":0.5,"evidence":"Represented values: M = 1, d = 0, b = -1","unitIs":"Unit is 1/2 of a revolution per minute","unitIsFactor":0.5,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Distance","anchor":"field-total-distance","type":"uint24","size":"0 or 3","sizeKind":"optional","kind":"uint","width":3,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Unit: org.bluetooth.unit.length.metre"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Resistance Level","anchor":"field-resistance-level","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Base Unit: org.bluetooth.unit.unitless"},"scale":{"M":1,"d":1,"b":0,"factor":10,"evidence":"Represented values: M = 1, d = 1, b = 0","unitIs":"Unit is 1","unitIsFactor":1,"conflict":true},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Instantaneous Power","anchor":"field-instantaneous-power","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":6,"value":1,"evidence":"Present if bit 6 of Flags field is set to 1"},"presenceText":"Present if bit 6 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.power.watt","label":"watt","evidence":"Unit: org.bluetooth.unit.power.watt"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Average Power","anchor":"field-average-power","type":"sint16","size":"0 or 2","sizeKind":"optional","kind":"sint","width":2,"presence":{"field":"Flags","bit":7,"value":1,"evidence":"Present if bit 7 of Flags field is set to 1"},"presenceText":"Present if bit 7 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.power.watt","label":"watt","evidence":"Unit: org.bluetooth.unit.power.watt"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Energy","anchor":"field-total-energy","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Hour","anchor":"field-energy-per-hour","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Energy Per Minute","anchor":"field-energy-per-minute","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":8,"value":1,"evidence":"Present if bit 8 of Flags field is set to 1"},"presenceText":"Present if bit 8 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Heart Rate","anchor":"field-heart-rate","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":9,"value":1,"evidence":"Present if bit 9 of Flags field is set to 1"},"presenceText":"Present if bit 9 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Metabolic Equivalent","anchor":"field-metabolic-equivalent","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":10,"value":1,"evidence":"Present if bit 10 of Flags field is set to 1"},"presenceText":"Present if bit 10 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.metabolic_equivalent","label":"metabolic equivalent","evidence":"Base Unit: org.bluetooth.unit.metabolic_equivalent"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 metabolic equivalent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Elapsed Time","anchor":"field-elapsed-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":11,"value":1,"evidence":"Present if bit 11 of Flags field is set to 1"},"presenceText":"Present if bit 11 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Remaining Time","anchor":"field-remaining-time","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Flags","bit":12,"value":1,"evidence":"Present if bit 12 of Flags field is set to 1"},"presenceText":"Present if bit 12 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2AD4","uuidNumber":10964,"id":"org.bluetooth.characteristic.supported_speed_range","name":"Supported Speed Range","slug":"supported-speed-range","hasPage":true,"file":"gss/org.bluetooth.characteristic.supported_speed_range.yaml","byteOrder":"little-endian","fields":[{"name":"Minimum Speed","anchor":"field-minimum-speed","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.velocity.kilometre_per_hour","label":"kilometre per hour","evidence":"Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 1/100 of a kilometer per hour","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Maximum Speed","anchor":"field-maximum-speed","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.velocity.kilometre_per_hour","label":"kilometre per hour","evidence":"Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 1/100 of a kilometer per hour","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Minimum Increment","anchor":"field-minimum-increment","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.velocity.kilometre_per_hour","label":"kilometre per hour","evidence":"Base Unit: org.bluetooth.unit.velocity.kilometre_per_hour"},"scale":{"M":1,"d":-2,"b":0,"factor":0.01,"evidence":"Represented values: M = 1, d = -2, b = 0","unitIs":"Unit is 1/100 of a kilometer per hour","unitIsFactor":0.01,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2AD5","uuidNumber":10965,"id":"org.bluetooth.characteristic.supported_inclination_range","name":"Supported Inclination Range","slug":"supported-inclination-range","hasPage":true,"file":"gss/org.bluetooth.characteristic.supported_inclination_range.yaml","byteOrder":"little-endian","fields":[{"name":"Minimum Inclination","anchor":"field-minimum-inclination","type":"sint16","size":"2","sizeKind":"fixed","kind":"sint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Base Unit: org.bluetooth.unit.percentage"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 of a percent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Maximum Inclination","anchor":"field-maximum-inclination","type":"sint16","size":"2","sizeKind":"fixed","kind":"sint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Base Unit: org.bluetooth.unit.percentage"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 of a percent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Minimum Increment","anchor":"field-minimum-increment","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Base Unit: org.bluetooth.unit.percentage"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is 1/10 of a percent","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2AD6","uuidNumber":10966,"id":"org.bluetooth.characteristic.supported_resistance_level_range","name":"Supported Resistance Level Range","slug":"supported-resistance-level-range","hasPage":true,"file":"gss/org.bluetooth.characteristic.supported_resistance_level_range.yaml","byteOrder":"little-endian","fields":[{"name":"Minimum Resistance Level","anchor":"field-minimum-resistance-level","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Base Unit: org.bluetooth.unit.unitless"},"scale":{"M":1,"d":1,"b":0,"factor":10,"evidence":"Represented values: M = 1, d = 1, b = 0","unitIs":"Unit is 1","unitIsFactor":1,"conflict":true},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Maximum Resistance Level","anchor":"field-maximum-resistance-level","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Base Unit: org.bluetooth.unit.unitless"},"scale":{"M":1,"d":1,"b":0,"factor":10,"evidence":"Represented values: M = 1, d = 1, b = 0","unitIs":"Unit is 1","unitIsFactor":1,"conflict":true},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Minimum Increment","anchor":"field-minimum-increment","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Base Unit: org.bluetooth.unit.unitless"},"scale":{"M":1,"d":1,"b":0,"factor":10,"evidence":"Represented values: M = 1, d = 1, b = 0","unitIs":"Unit is 1","unitIsFactor":1,"conflict":true},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2AD7","uuidNumber":10967,"id":"org.bluetooth.characteristic.supported_heart_rate_range","name":"Supported Heart Rate Range","slug":"supported-heart-rate-range","hasPage":true,"file":"gss/org.bluetooth.characteristic.supported_heart_rate_range.yaml","byteOrder":"little-endian","fields":[{"name":"Minimum Heart Rate","anchor":"field-minimum-heart-rate","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Maximum Heart Rate","anchor":"field-maximum-heart-rate","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Minimum Increment","anchor":"field-minimum-increment","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2AD8","uuidNumber":10968,"id":"org.bluetooth.characteristic.supported_power_range","name":"Supported Power Range","slug":"supported-power-range","hasPage":true,"file":"gss/org.bluetooth.characteristic.supported_power_range.yaml","byteOrder":"little-endian","fields":[{"name":"Minimum Power","anchor":"field-minimum-power","type":"sint16","size":"2","sizeKind":"fixed","kind":"sint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.power.watt","label":"watt","evidence":"Unit: org.bluetooth.unit.power.watt"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Maximum Power","anchor":"field-maximum-power","type":"sint16","size":"2","sizeKind":"fixed","kind":"sint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.power.watt","label":"watt","evidence":"Unit: org.bluetooth.unit.power.watt"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Minimum Increment","anchor":"field-minimum-increment","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.power.watt","label":"watt","evidence":"Unit: org.bluetooth.unit.power.watt"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2B34","uuidNumber":11060,"id":"org.bluetooth.characteristic.enhanced_blood_pressure_measurement","name":"Enhanced Blood Pressure Measurement","slug":"enhanced-blood-pressure-measurement","hasPage":true,"file":"gss/org.bluetooth.characteristic.enhanced_blood_pressure_measurement.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Blood Pressure Measurement Units Flag\n0 = Blood pressure for Systolic, Diastolic and MAP in units of mmHg\n1 = Blood pressure for Systolic, Diastolic and MAP in units of kPa","reserved":false},{"bits":[1],"label":"1","description":"Time Stamp Flag\n0 = Time Stamp not present\n1 = Time Stamp present","reserved":false},{"bits":[2],"label":"2","description":"Pulse Rate Flag\n0 = Pulse Rate not present\n1 = Pulse Rate present","reserved":false},{"bits":[3],"label":"3","description":"User ID Flag\n0 = User ID not present\n1 = User ID present","reserved":false},{"bits":[4],"label":"4","description":"Measurement Status Flag\n0 = Measurement Status not present\n1 = Measurement Status present","reserved":false},{"bits":[5],"label":"5","description":"User Facing Time Flag\n0 = User Facing Time not present\n1 = User Facing Time present","reserved":false},{"bits":[6],"label":"6","description":"Epoch Start 2000 Flag\n0 = Epoch start is January 1, 1900 (00:00:00)\n1 = Epoch start is January 1, 2000 (00:00:00)","reserved":false},{"bits":[7],"label":"7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Blood Pressure Measurement Compound Value (mmHg)","anchor":"field-blood-pressure-measurement-compound-value-mmhg","type":"struct","size":"0 or 6","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":0,"evidence":"Present if bit 0 of Flags field is set to 0"},"presenceText":"Present if bit 0 of Flags field is set to 0","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"Blood Pressure Measurement Compound Value (mmHg) › Systolic (mmHg): medfloat16 (2) is not a fixed-size integer this decoder reads"},{"name":"Blood Pressure Measurement Compound Value (kPa)","anchor":"field-blood-pressure-measurement-compound-value-kpa","type":"struct","size":"0 or 6","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Flags field is set to 1"},"presenceText":"Present if bit 0 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"Blood Pressure Measurement Compound Value (kPa) › Systolic (kPa): medfloat16 (2) is not a fixed-size integer this decoder reads"},{"name":"Time Stamp","anchor":"field-time-stamp","type":"uint32","size":"0 or 4","sizeKind":"optional","kind":"uint","width":4,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Unit: Seconds, since Epoch Start See \\autoref{sec:org.bluetooth.characteristic.enhanced_blood_pressure_measurement/field/time_stamp}.","reason":null},{"name":"Pulse Rate","anchor":"field-pulse-rate","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"User ID","anchor":"field-user-id","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Measurement Status","anchor":"field-measurement-status","type":"boolean[16]","size":"0 or 2","sizeKind":"optional","kind":"bits","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"User Facing Time","anchor":"field-user-facing-time","type":"uint32","size":"0 or 4","sizeKind":"optional","kind":"uint","width":4,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Unit: Seconds, since Epoch Start See \\autoref{sec:org.bluetooth.characteristic.enhanced_blood_pressure_measurement/field/user_facing_time}.","reason":null}],"unsupported":"Blood Pressure Measurement Compound Value (mmHg): Blood Pressure Measurement Compound Value (mmHg) › Systolic (mmHg): medfloat16 (2) is not a fixed-size integer this decoder reads"},{"uuid":"0x2B35","uuidNumber":11061,"id":"org.bluetooth.characteristic.enhanced_intermediate_cuff_pressure","name":"Enhanced Intermediate Cuff Pressure","slug":"enhanced-intermediate-cuff-pressure","hasPage":true,"file":"gss/org.bluetooth.characteristic.enhanced_intermediate_cuff_pressure.yaml","byteOrder":"little-endian","fields":[{"name":"Flags","anchor":"field-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Intermediate Cuff Pressure Measurement Units Flag\n0 = Intermediate Cuff Pressure in units of mmHg\n1 = Intermediate Cuff Pressure in units of kPa","reserved":false},{"bits":[1],"label":"1","description":"Time Stamp Flag\n0 = Time Stamp not present\n1 = Time Stamp present","reserved":false},{"bits":[2],"label":"2","description":"Pulse Rate Flag\n0 = Pulse Rate not present\n1 = Pulse Rate present","reserved":false},{"bits":[3],"label":"3","description":"User ID Flag\n0 = User ID not present\n1 = User ID present","reserved":false},{"bits":[4],"label":"4","description":"Measurement Status Flag\n0 = Measurement Status not present\n1 = Measurement Status present","reserved":false},{"bits":[5],"label":"5","description":"User Facing Time Flag\n0 = User Facing Time not present\n1 = User Facing Time present","reserved":false},{"bits":[6],"label":"6","description":"Epoch Start 2000 Flag\n0 = Epoch start is January 1, 1900 (00:00:00)\n1 = Epoch start is January 1, 2000 (00:00:00)","reserved":false},{"bits":[7],"label":"7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Intermediate Cuff Pressure Value","anchor":"field-intermediate-cuff-pressure-value","type":"medfloat16","size":"2","sizeKind":"fixed","kind":"unsupported","width":null,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.pressure.millimetre_of_mercury","label":"millimetre of mercury","evidence":"Unit: org.bluetooth.unit.pressure.millimetre_of_mercury"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"Time Stamp","anchor":"field-time-stamp","type":"uint32","size":"0 or 4","sizeKind":"optional","kind":"uint","width":4,"presence":{"field":"Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Flags field is set to 1"},"presenceText":"Present if bit 1 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Unit: Seconds since Epoch Start See \\autoref{sec:org.bluetooth.characteristic.enhanced_blood_pressure_measurement/field/time_stamp}.","reason":null},{"name":"Pulse Rate","anchor":"field-pulse-rate","type":"medfloat16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":{"field":"Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Flags field is set to 1"},"presenceText":"Present if bit 2 of Flags field is set to 1","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"User ID","anchor":"field-user-id","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"uint","width":1,"presence":{"field":"Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Flags field is set to 1"},"presenceText":"Present if bit 3 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Measurement Status","anchor":"field-measurement-status","type":"boolean[16]","size":"0 or 2","sizeKind":"optional","kind":"bits","width":2,"presence":{"field":"Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Flags field is set to 1"},"presenceText":"Present if bit 4 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"User Facing Time","anchor":"field-user-facing-time","type":"uint32","size":"0 or 4","sizeKind":"optional","kind":"uint","width":4,"presence":{"field":"Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Flags field is set to 1"},"presenceText":"Present if bit 5 of Flags field is set to 1","unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Unit: Seconds since Epoch Start See \\autoref{sec:org.bluetooth.characteristic.enhanced_blood_pressure_measurement/field/user_facing_time}.","reason":null}],"unsupported":"Intermediate Cuff Pressure Value: medfloat16 is not decoded here: the SIG's YAML files do not define its encoding"},{"uuid":"0x2B36","uuidNumber":11062,"id":"org.bluetooth.characteristic.blood_pressure_record","name":"Blood Pressure Record","slug":"blood-pressure-record","hasPage":true,"file":"gss/org.bluetooth.characteristic.blood_pressure_record.yaml","byteOrder":"little-endian","fields":[{"name":"Segmentation Header","anchor":"field-segmentation-header","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"First Segment: the characteristic contains the first segment of a record\n0 = False\n1 = True","reserved":false},{"bits":[1],"label":"1","description":"Last Segment: The characteristic contains the last segment of a record\n0 = False\n1 = True","reserved":false},{"bits":[2,3,4,5,6,7],"label":"2–7","description":"Rolling Segment Counter: 0 to 63\nIf the Rolling Segment Counter is equal to 63, it rolls over to 0 when it is next incremented.","reserved":false}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Sequence Number","anchor":"field-sequence-number","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Contains a sequence number of the record. The sequence number starts at 0 and loops back to 0 after 65536 records (per user). See \\autoref{sec:org.bluetooth.characteristic.blood_pressure_record/field/sequence_number}.","reason":null},{"name":"UUID","anchor":"field-uuid","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Contains the UUID of the contained characteristic value. See \\autoref{sec:org.bluetooth.characteristic.blood_pressure_record/field/uuid}.","reason":null},{"name":"Recorded Characteristic","anchor":"field-recorded-characteristic","type":"Determined by UUID","size":"Variable","sizeKind":"variable","kind":"unsupported","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Contains a part of or a complete characteristic value. See \\autoref{sec:org.bluetooth.characteristic.blood_pressure_record/field/recorded_characteristic}.","reason":"Determined by UUID is not decoded here: the SIG's YAML files do not define its encoding"},{"name":"E2E-CRC","anchor":"field-e2e-crc","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"Contains the CRC over all the data of a complete single or multi-message record. See \\autoref{sec:org.bluetooth.characteristic.blood_pressure_record/field/e2e-crc}. The presence of this field is defined by the service using this characteristic.","reason":null}],"unsupported":"Recorded Characteristic: Determined by UUID is not decoded here: the SIG's YAML files do not define its encoding"},{"uuid":"0x2B46","uuidNumber":11078,"id":"org.bluetooth.characteristic.preferred_units","name":"Preferred Units","slug":"preferred-units","hasPage":false,"file":"gss/org.bluetooth.characteristic.preferred_units.yaml","byteOrder":"little-endian","fields":[{"name":"Units","anchor":"field-units","type":"uint16 [1-256]","size":"2–512","sizeKind":"variable","kind":"array","width":2,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null,"signed":false}],"unsupported":null},{"uuid":"0x2B47","uuidNumber":11079,"id":"org.bluetooth.characteristic.high_resolution_height","name":"High Resolution Height","slug":"high-resolution-height","hasPage":false,"file":"gss/org.bluetooth.characteristic.high_resolution_height.yaml","byteOrder":"little-endian","fields":[{"name":"Height","anchor":"field-height","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.length.meter","label":"meter","evidence":"Base Unit: org.bluetooth.unit.length.meter"},"scale":{"M":1,"d":-4,"b":0,"factor":0.0001,"evidence":"Represented values: M = 1, d = -4, b = 0","unitIs":"Unit is meter with 0.0001 m (e.g., 0.1 mm)","unitIsFactor":0.0001,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2B48","uuidNumber":11080,"id":"org.bluetooth.characteristic.middle_name","name":"Middle Name","slug":"middle-name","hasPage":false,"file":"gss/org.bluetooth.characteristic.middle_name.yaml","byteOrder":"little-endian","fields":[{"name":"Middle Name","anchor":"field-middle-name","type":"utf8s","size":"variable","sizeKind":"variable","kind":"utf8","width":null,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":"UTF-8 string","reason":null}],"unsupported":null},{"uuid":"0x2B49","uuidNumber":11081,"id":"org.bluetooth.characteristic.stride_length","name":"Stride Length","slug":"stride-length","hasPage":false,"file":"gss/org.bluetooth.characteristic.stride_length.yaml","byteOrder":"little-endian","fields":[{"name":"Stride Length","anchor":"field-stride-length","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Base Unit: org.bluetooth.unit.length.metre"},"scale":{"M":1,"d":-3,"b":0,"factor":0.001,"evidence":"Represented values: M = 1, d = -3, b = 0","unitIs":"Unit is meter with a resolution of 0.001 m (e.g., 1 mm)","unitIsFactor":0.001,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2B4A","uuidNumber":11082,"id":"org.bluetooth.characteristic.handedness","name":"Handedness","slug":"handedness","hasPage":false,"file":"gss/org.bluetooth.characteristic.handedness.yaml","byteOrder":"little-endian","fields":[{"name":"Handedness","anchor":"field-handedness","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0x00","description":"Left handed"},{"from":1,"to":1,"value":"0x01","description":"Right handed"},{"from":2,"to":2,"value":"0x02","description":"Ambidextrous"},{"from":3,"to":3,"value":"0x03","description":"Unspecified"},{"from":4,"to":255,"value":"0x04–0xFF","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2B4B","uuidNumber":11083,"id":"org.bluetooth.characteristic.device_wearing_position","name":"Device Wearing Position","slug":"device-wearing-position","hasPage":false,"file":"gss/org.bluetooth.characteristic.device_wearing_position.yaml","byteOrder":"little-endian","fields":[{"name":"Device Wearing Position","anchor":"field-device-wearing-position","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0x00","description":"Other"},{"from":1,"to":1,"value":"0x01","description":"Head"},{"from":2,"to":2,"value":"0x02","description":"Head_Ear"},{"from":3,"to":3,"value":"0x03","description":"Head_Ear_Right"},{"from":4,"to":4,"value":"0x04","description":"Head_Ear_Left"},{"from":5,"to":5,"value":"0x05","description":"Head_Neck"},{"from":6,"to":6,"value":"0x06","description":"Trunk"},{"from":7,"to":7,"value":"0x07","description":"Trunk_Pelvis"},{"from":8,"to":8,"value":"0x08","description":"Trunk_Pelvis_Right"},{"from":9,"to":9,"value":"0x09","description":"Trunk_Pelvis_Left"},{"from":10,"to":10,"value":"0x0A","description":"Trunk_Thorax"},{"from":11,"to":11,"value":"0x0B","description":"Trunk_Thorax_Right"},{"from":12,"to":12,"value":"0x0C","description":"Trunk_Thorax_Left"},{"from":13,"to":13,"value":"0x0D","description":"Trunk_Back"},{"from":14,"to":14,"value":"0x0E","description":"UpperExtremity"},{"from":15,"to":15,"value":"0x0F","description":"UpperExtremity_Right"},{"from":16,"to":16,"value":"0x10","description":"UpperExtremity_Left"},{"from":17,"to":17,"value":"0x11","description":"UpperExtremity_Wrist"},{"from":18,"to":18,"value":"0x12","description":"UpperExtremity_Wrist_Right"},{"from":19,"to":19,"value":"0x13","description":"UpperExtremity_Wrist_Left"},{"from":20,"to":20,"value":"0x14","description":"UpperExtremity_Finger"},{"from":21,"to":21,"value":"0x15","description":"UpperExtremity_Finger_Right"},{"from":22,"to":22,"value":"0x16","description":"UpperExtremity_Finger_Left"},{"from":23,"to":23,"value":"0x17","description":"UpperExtremity_Hand"},{"from":24,"to":24,"value":"0x18","description":"UpperExtremity_Hand_Right"},{"from":25,"to":25,"value":"0x19","description":"UpperExtremity_Hand_Left"},{"from":26,"to":26,"value":"0x1A","description":"LowerExtremity"},{"from":27,"to":27,"value":"0x1B","description":"LowerExtremity_Right"},{"from":28,"to":28,"value":"0x1C","description":"LowerExtremity_Left"},{"from":29,"to":29,"value":"0x1D","description":"LowerExtremity_Ankle"},{"from":30,"to":30,"value":"0x1E","description":"LowerExtremity_Ankle_Right"},{"from":31,"to":31,"value":"0x1F","description":"LowerExtremity_Ankle_Left"},{"from":32,"to":32,"value":"0x20","description":"LowerExtremity_Foot"},{"from":33,"to":33,"value":"0x21","description":"LowerExtremity_Foot_Right"},{"from":34,"to":34,"value":"0x22","description":"LowerExtremity_Foot_Left"},{"from":35,"to":35,"value":"0x23","description":"Pants_Pocket"},{"from":36,"to":36,"value":"0x24","description":"Pants_Pocket_Right"},{"from":37,"to":37,"value":"0x25","description":"Pants_Pocket_Left"},{"from":38,"to":38,"value":"0x26","description":"Chest_Pocket"},{"from":39,"to":39,"value":"0x27","description":"Chest_Pocket_Right"},{"from":40,"to":40,"value":"0x28","description":"Chest_Pocket_Left"},{"from":41,"to":255,"value":"0x29–0xFF","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2B4C","uuidNumber":11084,"id":"org.bluetooth.characteristic.four_zone_heart_rate_limits","name":"Four Zone Heart Rate Limits","slug":"four-zone-heart-rate-limits","hasPage":true,"file":"gss/org.bluetooth.characteristic.four_zone_heart_rate_limits.yaml","byteOrder":"little-endian","fields":[{"name":"Four Zone Heart Rate Limits - Light / Moderate Limit","anchor":"field-four-zone-heart-rate-limits-light-moderate-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Four Zone Heart Rate Limits - Moderate / Hard Limit","anchor":"field-four-zone-heart-rate-limits-moderate-hard-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Four Zone Heart Rate Limits - Hard / Maximum Limit","anchor":"field-four-zone-heart-rate-limits-hard-maximum-limit","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2B4D","uuidNumber":11085,"id":"org.bluetooth.characteristic.high_intensity_exercise_threshold","name":"High Intensity Exercise Threshold","slug":"high-intensity-exercise-threshold","hasPage":true,"file":"gss/org.bluetooth.characteristic.high_intensity_exercise_threshold.yaml","byteOrder":"little-endian","fields":[{"name":"Field Selector","anchor":"field-field-selector","type":"uint8","size":"1","sizeKind":"fixed","kind":"uint","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":null,"values":[{"from":0,"to":0,"value":"0","description":"No field is selected"},{"from":1,"to":1,"value":"1","description":"The Threshold as Energy Expenditure per Hour field is selected"},{"from":2,"to":2,"value":"2","description":"The Threshold as Metabolic Equivalent field is selected"},{"from":3,"to":3,"value":"3","description":"The Threshold as Percentage of Maximum Heart Rate field is selected"},{"from":4,"to":4,"value":"4","description":"The Threshold as Heart Rate field is selected"},{"from":5,"to":255,"value":"5–255","description":"Reserved for Future Use"}],"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Threshold as Energy Expenditure per Hour","anchor":"field-threshold-as-energy-expenditure-per-hour","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"unsupported","width":null,"presence":null,"presenceText":"Present if value of Field Selector field is 1","unit":{"id":"org.bluetooth.unit.energy.joule","label":"joule","evidence":"Base Unit: org.bluetooth.unit.energy.joule"},"scale":{"M":1,"d":3,"b":0,"factor":1000,"evidence":"Represented values: M = 1, d = 3, b = 0","unitIs":"Unit is joule with a resolution of 1000 joules","unitIsFactor":1000,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"its condition is not a flags bit: \"Present if value of Field Selector field is 1\""},{"name":"Threshold as Metabolic Equivalent","anchor":"field-threshold-as-metabolic-equivalent","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"unsupported","width":null,"presence":null,"presenceText":"Present if value of Field Selector field is 2","unit":{"id":"org.bluetooth.unit.metabolic_equivalent","label":"metabolic equivalent","evidence":"Base Unit: org.bluetooth.unit.metabolic_equivalent"},"scale":{"M":1,"d":-1,"b":0,"factor":0.1,"evidence":"Represented values: M = 1, d = -1, b = 0","unitIs":"Unit is MET with a resolution of 0.1 MET (i.e., kcal/kg/hour)","unitIsFactor":0.1,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"its condition is not a flags bit: \"Present if value of Field Selector field is 2\""},{"name":"Threshold as Percentage of Maximum Heart Rate","anchor":"field-threshold-as-percentage-of-maximum-heart-rate","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"unsupported","width":null,"presence":null,"presenceText":"Present if value of Field Selector field is 3","unit":{"id":"org.bluetooth.unit.percentage","label":"percentage","evidence":"Unit: org.bluetooth.unit.percentage"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"its condition is not a flags bit: \"Present if value of Field Selector field is 3\""},{"name":"Threshold as Heart Rate","anchor":"field-threshold-as-heart-rate","type":"uint8","size":"0 or 1","sizeKind":"optional","kind":"unsupported","width":null,"presence":null,"presenceText":"Present if value of Field Selector field is 4","unit":{"id":"org.bluetooth.unit.period.beats_per_minute","label":"beats per minute","evidence":"Unit: org.bluetooth.unit.period.beats_per_minute"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":"its condition is not a flags bit: \"Present if value of Field Selector field is 4\""}],"unsupported":"Threshold as Energy Expenditure per Hour: its condition is not a flags bit: \"Present if value of Field Selector field is 1\""},{"uuid":"0x2B4E","uuidNumber":11086,"id":"org.bluetooth.characteristic.activity_goal","name":"Activity Goal","slug":"activity-goal","hasPage":true,"file":"gss/org.bluetooth.characteristic.activity_goal.yaml","byteOrder":"little-endian","fields":[{"name":"Presence Flags","anchor":"field-presence-flags","type":"boolean[8]","size":"1","sizeKind":"fixed","kind":"bits","width":1,"presence":null,"presenceText":null,"unit":null,"scale":null,"bits":[{"bits":[0],"label":"0","description":"Total Energy Expenditure Present","reserved":false},{"bits":[1],"label":"1","description":"Normal Walking Steps Present","reserved":false},{"bits":[2],"label":"2","description":"Intensity Steps Present","reserved":false},{"bits":[3],"label":"3","description":"Floor Steps Present","reserved":false},{"bits":[4],"label":"4","description":"Distance Present","reserved":false},{"bits":[5],"label":"5","description":"Duration of Normal Walking Present","reserved":false},{"bits":[6],"label":"6","description":"Duration of Intensity Walking Present","reserved":false},{"bits":[7],"label":"7","description":"Reserved for Future Use","reserved":true}],"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Total Energy Expenditure","anchor":"field-total-energy-expenditure","type":"uint16","size":"0 or 2","sizeKind":"optional","kind":"uint","width":2,"presence":{"field":"Presence Flags","bit":0,"value":1,"evidence":"Present if bit 0 of Presence Flags field is set to 1"},"presenceText":"Present if bit 0 of Presence Flags field is set to 1","unit":{"id":"org.bluetooth.unit.energy.joule","label":"joule","evidence":"Base Unit: org.bluetooth.unit.energy.joule"},"scale":{"M":1,"d":3,"b":0,"factor":1000,"evidence":"Represented values: M = 1, d = 3, b = 0","unitIs":"Unit is joule with a resolution of 1000 J.","unitIsFactor":1000,"conflict":false},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Normal Walking Steps","anchor":"field-normal-walking-steps","type":"uint24","size":"0 or 3","sizeKind":"optional","kind":"uint","width":3,"presence":{"field":"Presence Flags","bit":1,"value":1,"evidence":"Present if bit 1 of Presence Flags field is set to 1"},"presenceText":"Present if bit 1 of Presence Flags field is set to 1","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Intensity Steps","anchor":"field-intensity-steps","type":"uint24","size":"0 or 3","sizeKind":"optional","kind":"uint","width":3,"presence":{"field":"Presence Flags","bit":2,"value":1,"evidence":"Present if bit 2 of Presence Flags field is set to 1"},"presenceText":"Present if bit 2 of Presence Flags field is set to 1","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Floor Steps","anchor":"field-floor-steps","type":"uint24","size":"0 or 3","sizeKind":"optional","kind":"uint","width":3,"presence":{"field":"Presence Flags","bit":3,"value":1,"evidence":"Present if bit 3 of Presence Flags field is set to 1"},"presenceText":"Present if bit 3 of Presence Flags field is set to 1","unit":{"id":"org.bluetooth.unit.unitless","label":"","evidence":"Unit: org.bluetooth.unit.unitless"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Distance","anchor":"field-distance","type":"uint24","size":"0 or 3","sizeKind":"optional","kind":"uint","width":3,"presence":{"field":"Presence Flags","bit":4,"value":1,"evidence":"Present if bit 4 of Presence Flags field is set to 1"},"presenceText":"Present if bit 4 of Presence Flags field is set to 1","unit":{"id":"org.bluetooth.unit.length.metre","label":"metre","evidence":"Base Unit: org.bluetooth.unit.length.metre"},"scale":{"M":1,"d":1,"b":0,"factor":10,"evidence":"Represented values: M = 1, d = 1, b = 0","unitIs":"Unit is meter with a resolution of 1 m.","unitIsFactor":1,"conflict":true},"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Duration of Normal Walking","anchor":"field-duration-of-normal-walking","type":"uint24","size":"0 or 3","sizeKind":"optional","kind":"uint","width":3,"presence":{"field":"Presence Flags","bit":5,"value":1,"evidence":"Present if bit 5 of Presence Flags field is set to 1"},"presenceText":"Present if bit 5 of Presence Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null},{"name":"Duration of Intensity Walking","anchor":"field-duration-of-intensity-walking","type":"uint24","size":"0 or 3","sizeKind":"optional","kind":"uint","width":3,"presence":{"field":"Presence Flags","bit":6,"value":1,"evidence":"Present if bit 6 of Presence Flags field is set to 1"},"presenceText":"Present if bit 6 of Presence Flags field is set to 1","unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2B4F","uuidNumber":11087,"id":"org.bluetooth.characteristic.sedentary_interval_notification","name":"Sedentary Interval Notification","slug":"sedentary-interval-notification","hasPage":false,"file":"gss/org.bluetooth.characteristic.sedentary_interval_notification.yaml","byteOrder":"little-endian","fields":[{"name":"Sedentary Interval Notification","anchor":"field-sedentary-interval-notification","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.time.second","label":"second","evidence":"Unit: org.bluetooth.unit.time.second"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null},{"uuid":"0x2B50","uuidNumber":11088,"id":"org.bluetooth.characteristic.caloric_intake","name":"Caloric Intake","slug":"caloric-intake","hasPage":false,"file":"gss/org.bluetooth.characteristic.caloric_intake.yaml","byteOrder":"little-endian","fields":[{"name":"Caloric Intake","anchor":"field-caloric-intake","type":"uint16","size":"2","sizeKind":"fixed","kind":"uint","width":2,"presence":null,"presenceText":null,"unit":{"id":"org.bluetooth.unit.energy.kilogram_calorie","label":"kilogram calorie","evidence":"Unit: org.bluetooth.unit.energy.kilogram_calorie"},"scale":null,"bits":null,"values":null,"children":null,"packed":false,"structNote":null,"prose":null,"reason":null}],"unsupported":null}]}