# Odometer

## Synchronize vehicle's odometer

You can retrieve the vehicle’s odometer data from the DriveQuant servers by calling the following method:

{% tabs %}
{% tab title="DriveKitVehicle" %}

```kotlin
fun getOdometer(
    	vehicleId: String,
    	listener: OdometerSyncQueryListener,
    	type: SynchronizationType = DEFAULT
)
```

{% endtab %}
{% endtabs %}

This method have the following parameters:

| Name      | Type                | Description                                                                                                                                                                                                                                                             |
| --------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| vehicleId | String              | The vehicle for which you want to get the odometer’s data                                                                                                                                                                                                               |
| type      | SynchronizationType | <p>Can be <code>DEFAULT</code> or <code>CACHE</code>.</p><p>- <code>DEFAULT</code> will synchronize the vehicle’s odometer by calling the DriveQuant servers</p><p>- <code>CACHE</code> will retrieve the odometer data already synchronized in the local database.</p> |

[OdometerSyncStatus](https://docs.drivequant.com/vehicle/references-android#odometersyncstatus),  [VehicleOdometer](https://docs.drivequant.com/vehicle/references-android#vehicleodometer) and [VehicleOdometerHistory](https://docs.drivequant.com/vehicle/references-android#vehicleodometerhistory) models are described in the References part.

## Retrieve local vehicle’s odometer data

You can retrieve the vehicle’s odometer data stored in the DriveKit local database by calling the previous method but with the type parameter to `CACHE`.

## Add odometer history

You can add a new entry to a vehicle’s odometer by calling the following method:

{% tabs %}
{% tab title="DriveKitVehicle" %}

```kotlin
fun addOdometerHistory(
    	vehicleId: String,
    	distance: Double,
    	listener: OdometerAddHistoryQueryListener
)
```

{% endtab %}
{% endtabs %}

This method have the following parameters:

| Name      | type   | Description                                               |
| --------- | ------ | --------------------------------------------------------- |
| vehicleId | String | The vehicle id for which you want to add an history entry |
| distance  | Double | The distance in km you want to set                        |

[OdometerAddHistoryStatus](https://docs.drivequant.com/vehicle/references-android#odometeraddhistorystatus),  [VehicleOdometer](https://docs.drivequant.com/vehicle/references-android#vehicleodometer) and [VehicleOdometerHistory](https://docs.drivequant.com/vehicle/references-android#vehicleodometerhistory) models are described in the References part.

## Update odometer history

To update an entry to a vehicle’s odometer, call the following method:

{% tabs %}
{% tab title="DriveKitVehicle" %}

```kotlin
fun updateOdometerHistory(
    	vehicleId: String,
    	historyId: Int,
    	distance: Double,
    	listener: OdometerUpdateHistoryQueryListener
)
```

{% endtab %}
{% endtabs %}

This method have the following parameters:

| Name      | Type   | Description                                                     |
| --------- | ------ | --------------------------------------------------------------- |
| vehicleId | String | The vehicle id for which you want to update the odometer’s data |
| historyId | Int    | The history id for which you want to update the distance.       |
| distance  | Double | The distance in km you want to update                           |

[OdometerUpdateHistoryStatus](https://docs.drivequant.com/vehicle/references-android#odometerupdatehistorystatus),  [VehicleOdometer](https://docs.drivequant.com/vehicle/references-android#vehicleodometer) and [VehicleOdometerHistory](https://docs.drivequant.com/vehicle/references-android#vehicleodometerhistory) models are described in the References part.

## Delete odometer history

To delete vehicle’s odometer entry, call the following method:

{% tabs %}
{% tab title="DriveKitVehicle" %}

```kotlin
fun deleteOdometerHistory(
    	vehicleId: String,
    	historyId: Int,
    	listener: OdometerDeleteHistoryQueryListener
)
```

{% endtab %}
{% endtabs %}

This method have the following parameters:

| Name      | Type   | Description                                                              |
| --------- | ------ | ------------------------------------------------------------------------ |
| vehicleId | String | The vehicle id for which you want to delete the odometer’s history entry |
| historyId | Int    | The history id you want to delete                                        |

[OdometerDeleteHistoryStatus](https://docs.drivequant.com/vehicle/references-android#odometerdeletehistorystatus),  [VehicleOdometer](https://docs.drivequant.com/vehicle/references-android#vehicleodometer) and [VehicleOdometerHistory](https://docs.drivequant.com/vehicle/references-android#vehicleodometerhistory) models are described in the References part.
