import { type DataViewReader } from "./data-view-reader.js"; import { type DateTime } from "./date-time.js"; /**

The Location and Speed characteristic is a variable length structure containing a Flags field and, based on the contents of the Flags field, may contain a combination of data fields listed below. Note that it is possible for this characteristic to exceed the default LE MTU size.

*/ export interface LocationAndSpeed { /** *

Format: `sint24`

*

Unit: `org.bluetooth.unit.length.meter`

*

Unit is in meters with a resolution of 1/100

*/ elevation?: number | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ elevationPresent: number; /** * | value | description | * | ----- | ------------------------------ | * | 0 | Positioning System | * | 1 | Barometric Air Pressure | * | 2 | Database Service (or similiar) | * | 3 | Other | */ elevationSource: number; /** *

Format: `16bit`

* * Bit field: * * | index | size | name | * | ----- | ---- | --------------------------- | * | 0 | 1 | Instantaneous Speed Present | * | 1 | 1 | Total Distance Present | * | 2 | 1 | Location Present | * | 3 | 1 | Elevation Present | * | 4 | 1 | Heading Present | * | 5 | 1 | Rolling Time Present | * | 6 | 1 | UTC Time Present | * | 7 | 2 | Position Status | * | 9 | 1 | Speed and Distance format | * | 10 | 2 | Elevation Source | * | 12 | 1 | Heading Source | * | 13 | 3 | Reserved for future use | * */ flags: number; /** *

Format: `uint16`

*

Unit: `org.bluetooth.unit.plane_angle.degree`

*

Unit is in degrees with a resolution of 1/100

*/ heading?: number | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ headingPresent: number; /** * | value | description | * | ----- | --------------------------------- | * | 0 | Heading based on movement | * | 1 | Heading based on magnetic compass | */ headingSource: number; /** *

Format: `uint16`

*

Unit: `org.bluetooth.unit.velocity.metres_per_second`

*

Unit is in meters per second with a resolution of 1/100

*/ instantaneousSpeed?: number | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ instantaneousSpeedPresent: number; /** *

Format: `sint32`

*

Unit: `org.bluetooth.unit.plane_angle.degree`

*/ locationLatitude?: number | undefined; /** *

Format: `sint32`

*

Unit: `org.bluetooth.unit.plane_angle.degree`

*/ locationLongitude?: number | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ locationPresent: number; /** * | value | description | * | ----- | ------------------- | * | 0 | No Position | * | 1 | Position Ok | * | 2 | Estimated Position | * | 3 | Last Known Position | */ positionStatus: number; /** *

Format: `uint8`

*

Unit: `org.bluetooth.unit.time.second`

*

Unit is in seconds with a resolution of 1 second

*/ rollingTime?: number | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ rollingTimePresent: number; /** * | value | description | * | ----- | ----------- | * | 0 | 2D | * | 1 | 3D | */ speedAndDistanceFormat: number; /** *

Format: `uint24`

*

Unit: `org.bluetooth.unit.length.meter`

*

Unit is in meters with a resolution of 1/10

*/ totalDistance?: number | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ totalDistancePresent: number; /**

Smallest units in seconds

*/ utcTime?: DateTime | undefined; /** * | value | description | * | ----- | ----------- | * | 0 | False | * | 1 | True | */ utcTimePresent: number; } /** @see {@link https://raw.githubusercontent.com/oesmith/gatt-xml/refs/heads/master/org.bluetooth.characteristic.location_and_speed.xml | Location And Speed} */ export declare class LocationAndSpeedImpl implements LocationAndSpeed { static readonly UUID_PREFIX = 10855; static readonly TYPE_NAME = "org.bluetooth.characteristic.location_and_speed"; static readonly NAME = "Location and Speed Characteristic"; /** Parse from a DataView into {@link LocationAndSpeed}. */ static fromDataView(dataView: DataView | DataViewReader, indexStart?: number | undefined): LocationAndSpeedImpl; readonly elevation?: number | undefined; readonly elevationPresent: number; readonly elevationSource: number; readonly flags: number; readonly heading?: number | undefined; readonly headingPresent: number; readonly headingSource: number; readonly instantaneousSpeed?: number | undefined; readonly instantaneousSpeedPresent: number; readonly locationLatitude?: number | undefined; readonly locationLongitude?: number | undefined; readonly locationPresent: number; readonly positionStatus: number; readonly rollingTime?: number | undefined; readonly rollingTimePresent: number; readonly speedAndDistanceFormat: number; readonly totalDistance?: number | undefined; readonly totalDistancePresent: number; readonly utcTime?: DateTime | undefined; readonly utcTimePresent: number; constructor(locationAndSpeed: LocationAndSpeed); } /** Parse from a DataView into {@link LocationAndSpeed}. */ export declare function locationAndSpeedFromDataView(dataView: DataView | DataViewReader, indexStart?: number): LocationAndSpeed; //# sourceMappingURL=location-and-speed.d.ts.map