iOS

Integration

The Trip Simulator component includes two modules:

  • The first module is used as a testing tool for your debug application.

  • The second module is a “no-op” module. It will do nothing and does not include any trip data: it’s an empty implementation that mirrors the public methods and objects of the first module which can be integrated into your release-mode application to maintain a consistent codebase across both debug and release modes without embedding the real trip simulator in production.

To add the Trip Simulator module to your app:

  • Swift Package Manager: Add 'DriveKitTripSimulator' from repository: https://github.com/DriveQuantPublic/drivekit-sdk-spm.git as dependency and 'DriveKitTripSimulatorNoop' module in release if you need it.

  • Cocoapods (deprecation scheduled for the end of 2025): add the following lines to your dependencies in your Podfile, with the no-op module in release mode if you need it:

pod 'DriveKitTripSimulator', :configuration => ['Debug']
pod 'DriveKitTripSimulatorNoop', :configuration => ['Release']

Usage

DriveQuant offers the possibility of running simulations from a list of preset trips. After integrating and activating the trip simulation component, you can select a preset trip from those described in the table below. Once the simulation is launched, the Trip Analysis SDK will receive the configured callbacks automatically.

Name

Duration

Distance

Description

shortTrip

8 min

2 km

Trip too short that does not allow to rate the driver's behavior

mixedTrip

15 min

12 km

A 15-minute mixed trip in urban and suburban areas

cityTrip

20 min

8 km

A 20-minute city trip

suburbanTrip

30 min

30 km

A 30-minute trip performed in a suburban environment mostly

highwayTrip

55 min

100 km

A 55-minute highway trip

trainTrip

10 min

5 km

Trip recorded in a train to test the alternative transportation modes detection

busTrip

13 min

3 km

Trip recorded in a bus to test the alternative transportation modes detection

boatTrip

40 min

25 km

Trip recorded in a boat to test the alternative transportation modes detection

tripWithCrash

5 min

1 km

A trip to simulate an unconfirmed or a confirmed crash.

tripWithCrashStillDriving

23 min

24 km

A trip to simulate an accident confirmed less than two minutes after the start of the trip, after which the driver continued driving.

Check if it’s the no-op module

To verify if you are embedding the no-op module, you can call the following code:

let isNoop = DriveKitTripSimulator.shared.isNoop

Simulate a trip

To simulate a trip, you just need to send the selected trip to the start method:

import DriveKitTripSimulatorModule

DriveKitTripSimulator.shared.start(<The_PresetTrip_you_want>)

Stop the simulation

To stop the simulation of a trip, you need to call the stop method:

import DriveKitTripSimulatorModule

DriveKitTripSimulator.shared.stop()

Simulate a crash during a trip

In order to mock a crash to check your integration, you must call the startCrashTrip function with a PresetCrashConfiguration item as parameter. Possible values for PresetCrashConfiguration enumeration are described in the table below:

Name
Description

confirmed30KmH

A short trip with a collision at 30 km/h that occurs 137 seconds after the trip begins and that corresponds to a confirmed accident.

confirmed20KmH

A short trip with a collision at 20 km/h that occurs 141 seconds after the trip begins and that corresponds to a confirmed accident.

confirmed10KmH

A short trip with a collision at 10 km/h that occurs 146 seconds after the trip begins and that corresponds to a confirmed accident.

unconfirmed0KmH

A short trip with a collision during a vehicle stop that occurs 159 seconds after the trip begins and that corresponds to an unconfirmed accident.

confirmed30KmHStillDriving

A trip to with a collision at 30km/h that occures 95 seconds after the trip begins and that corresponds to a confirmed accident, after which the driver continue driving.

DriveKitTripSimulator.shared.startCrashTrip(.confirmed20KmH)

Last updated

Was this helpful?