Skip to content

Send event request

The data collector send event request provides various event models to send application & vehicle sensor events to the cloud. Telenav currently supports the below listed events for different scenarios, the corresponding data models provided facilitate building events by filling mandatory and optional data fields using the builder.

Send Event

This "input" API lets a producer report an event, generate and send the event data to DataCollector

Key methods

Method Details
setEvent(Event event) The specific event which comes from com.telenav.datacollector.model with event data included

Sample code

1
2
3
4
5
6
7
8
SendEventRequest.Builder builder = client.sendEventRequest();
SendEventResponse response = builder
    .setEvent(FavoriteEvent.builder()
            .setActionType(FavoriteEvent.ActionType.ADD)
            .setEntityId("faked_id")
            .build())
    .build()
    .execute();
1
2
3
4
5
6
7
8
SendEventRequest.Builder builder = client.sendEventRequest()
SendEventResponse response = builder
    .setEvent(FavoriteEvent.builder()
            .setActionType(FavoriteEvent.ActionType.ADD)
            .setEntityId("faked_id")
            .build())
    .build()
    .execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Please see the API reference for the main classes related to Data Collector.

Currently, all supported events can be categorized as below, still working in progress:

  • Favorite Event

    • Remove All Favorites Event - When user clicks the button to clear all favorite result list, HMI/application should send "REMOVE_ALL_FAVORITES" event.
    • Favorite Event - When user adds/removes one favorite result, HMI/application should send "FAVORITE" event
  • Search Event

    • Entity Action Event - When user initiates an action (eg: click a candidate, call the phone number of that poi, drive to that poi/address) from a search result (from search result list or detail page), HMI/application should send "ENTITY_ACTION" event.
    • Entity Cached Action Event - When user initiates action (eg: click a candidate, call the phone number of that poi, drive to that poi/address) from a pre-stored poi/address (home/work address, favorite result list, recent poi/address), HMI/application should send "ENTITY_CACHE_ACTION" event.
  • User Event

    • Set Home Event - Should be sent by HMI when user adds/removes home address, user can add/remove by setting ActionType as ADD/DELETE.
    • Set Work Event - Should be sent by HMI when user adds/removes work address, user can add/remove by setting ActionType as ADD/DELETE.
  • Vehicle Event

    • Start Engine Event - When ignition is turned on, HMI application should send "START_ENGINE" event.
    • Stop Engine Event - When ignition is turned off, HMI application should send "STOP_ENGINE" event.
    • Charge State Event - Should be sent when updates on current charge state of the vehicle.
    • Climate State Event - Should be sent when updates on current climate state of the vehicle.
  • Sensor Event

    • AcceleratorPedal Event - Should be sent when updates on accelerator pedal from the sensor.
    • BrakingDecel Event - Should be sent when updates on braking deceleration from the sensor.
    • EngineLoad Event - Should be sent when updates on current engine load in percentage for the sensor.
    • EngineSpeed Event - Should be sent when updates on current engine rotations per minute in the range from the sensor.
    • FuelLevel Event - Should be sent when updates on current fuel level, in percentage from the sensor.
    • GpsProbe Event - HMI/Application should send gps data at specified frequency with the "GPS_PROBE" event all the time after engine start.
    • RelativeAcceleratorPedal Event - Should be sent when updates on current relative accelerator pedal from the sensor.
    • RuntimeSinceEngineStart Event - Should be sent when updates on UTC timestamp in seconds since engine started, in seconds.
    • VehicleSpeed Event - Should be sent when updates on vehicle speed in meters per second from the sensor.
  • Phone Event

    • Accelerometer Event - Should be sent when updates on current acceleration forces, including gravity, in m/s^2.
    • AmbientHumidity Event - Should be sent when updates on current ambient humidity, in percentage.
    • AmbientLight Event - Should be sent when updates on current light illuminance.
    • AmbientMagnetic Event - Should be sent when update on current magnetic strength along axis, (in micro-Tesla - uT).
    • AmbientPressure Event - Should be sent when updates on current pressure, in hPa or mbar.
    • AmbientTemperature Event - Should be sent when updates on current ambient air temperature in degree Celsius.
    • GeomagneticRotationVector Event - Should be sent when updates on rotation vector value based on the geomagnetic field from device, unitless.
    • Gyroscope Event - Should be sent when updates on current acceleration forces, including gravity, in m/s^2.
    • Heading Event - Should be sent when updates on current orientation, in degrees.
    • LinearAcceleration Event - Should be sent when updates on current acceleration forces applied to (x, y, z), in m/s^2.
    • RotationVector Event - Should be sent when updates on rotation vector components, unitless.

Favorite Event

Favorite Event

When user adds/removes a favorite result, HMI/application should send a "FAVORITE" event.

Key methods

Method Details
setEntityId(String entity_id) The EntityId address/POI, mandatory data field.
setActionType(ActionType action) ActionType as ADD/DELETE when user add/remove this item, mandatory data field.
enum index ActionType
0 ADD
1 DELETE


Search API sample code synchronously using execute() method

1
2
3
4
5
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder
.setEvent(FavoriteEvent.builder().setEntityId("EntityId")
.setActionType(FavoriteEvent.ActionType.SET)
.build()).build().execute();
1
2
3
4
5
var builder = dataCollectorClient.sendEventRequest();
var response = builder
.setEvent(FavoriteEvent.builder().setEntityId("EntityId")
.setActionType(FavoriteEvent.ActionType.SET)
.build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Remove All Favorites Event

When user clicks the button to clear all favorite result list, HMI/application should send a "REMOVE_ALL_FAVORITES" event.

Key methods: No need, no mandatory data field need to be filled in.

Sample code

1
2
3
4
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder
    .setEvent(RemoveAllFavoritesEvent.builder()
    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(RemoveAllFavoritesEvent.builder()
    .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Search Event

Entity Action Event

When user take action (eg: click a candidate, call the phone number of that poi, drive to that poi/address) from a search result (from search result list or detail page), HMI/application should send an "ENTITY_ACTION" event.

Key methods

Method Details
setEntityId(String entity_id) The EntityId address/POI that was selected, mandatory data field.
setReferenceId(String reference_id) The reference/transaction id of the search from which the result was selected to view details, optional data field.
setActionType(ActionType action) ActionType as CLICK/CALL/DIRECTION click 1 candidate, call the phone number of that poi, drive to that poi/address, mandatory data field.
setDisplayMode(DisplayMode display) DisplayMode as MAP_VIEW/LIST_VIEW where entity is displayed when entity is taken action mandatory data field.
enum index ActionType
0 CLICK
1 CALL
2 DIRECTION
enum index DisplayMode
0 MAP_VIEW
1 LIST_VIEW

Sample code

1
2
3
4
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(EntityActionEvent.builder().setEntityId("EntityId").setReferenceId("ReferenceId")
    .setActionType(EntityActionEvent.ActionType.CLICK).setDisplayMode(EntityActionEvent.DisplayMode.MAP_VIEW)
    .build()).build().execute();
1
2
3
4
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(EntityActionEvent.builder().setEntityId("EntityId").setReferenceId("ReferenceId")
    .setActionType(EntityActionEvent.ActionType.CLICK).setDisplayMode(EntityActionEvent.DisplayMode.MAP_VIEW)
    .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Entity Cache Action Event

When user initiates an action (eg: click a candidate, call the phone number of that poi, drive to that poi/address) from a pre-stored poi/address (home/work address, favorite result list, recent poi/address), HMI/application should send "ENTITY_CACHE_ACTION" event.

Key methods:

Method Details
setEntityId(String entity_id) The EntityId address/POI that was selected, mandatory data field.
setActionType(ActionType action) ActionType as CLICK/CALL/DIRECTION click 1 candidate, call the phone number of that poi, drive to that poi/address, mandatory data field.
setSourceType(SourceType source) Source type RECENT/FAVORITE/HOME/WORK, optional data field.
enum index ActionType
0 CLICK
1 CALL
2 DIRECTION
enum index SourceType
0 RECENT
1 FAVORITE
2 HOME
3 WORK

Sample code

1
2
3
4
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(EntityCacheActionEvent.builder().setEntityId("EntityId")
    .setActionType(EntityCacheActionEvent.ActionType.CLICK).setSourceType(EntityCacheActionEvent.SourceType.RECENT)
    .build()).build().execute();
1
2
3
4
5
var builder = dataCollectorClient.sendEventRequest();
var response = builder
.setEvent(EntityCacheActionEvent.builder().setEntityId("EntityId")
        .setActionType(EntityCacheActionEvent.ActionType.CLICK).setSourceType(EntityCacheActionEvent.SourceType.RECENT)
        .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Select Word Prediction Event

When user types words and select a candidate appears in the list which is predicted by application, HMI/application should send "SELECT_WORD_PREDICTION" event.

Key methods:

Method Details
setReferenceId(String reference_id) Set the reference id of word prediction from which this word was generated, mandatory data field.
setSelectedWord(String selected_word) Set selected word in word prediction result, mandatory data field.

Sample code

1
2
3
4
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(SelectWordPredictionEvent.builder().setReferenceId("ReferenceId")
    .setsetSelectedWord("selected_word")
    .build()).build().execute();
1
2
3
4
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(SelectWordPredictionEvent.builder().setReferenceId("ReferenceId")
        .setsetSelectedWord("selected_word")
        .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Entity Feedback Event

When user has feedbacks after search operation is performed, HMI/application should send "ENTITY_FEEDBACK" event.

Key methods:

Method Details
setEntityId(String entity_id) The EntityId address/POI that was selected, mandatory data field.
setEntityFeedbackType(EntityFeedbackType feedback) Set EntityFeedbackType, mandatory data field.
setDescription(String description) Set description of entity feedback, optional data field.
enum index EntityFeedbackType
0 PERMANENTLY_CLOSED
1 ADDRESS_INCORRECT
2 PHONE_NUMBER_INCORRECT
3 WRONG_PLACEMENT_ON_MAP
4 OTHER

Sample code

1
2
3
4
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(EntityFeedbackEvent.builder().setEntityId("EntityId")
    .setActionType(EntityFeedbackEvent.EntityFeedbackType.PERMANENTLY_CLOSED).setDescription("description")
    .build()).build().execute();
1
2
3
4
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(EntityFeedbackEvent.builder().setEntityId("EntityId")
            .setActionType(EntityFeedbackEvent.EntityFeedbackType.PERMANENTLY_CLOSED).setDescription("description")
            .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

User Event

Set Home Event

Set home event should be sent by HMI when user adds/removes home address, user can add/remove by setting ActionType as ADD/DELETE.

Key methods

Method Details
setEntityId(String entity_id) The EntityId address/POI, mandatory data field.
setLat(Double lat) Set to raw latitude, mandatory data field.
setLon(Double lon) Set to raw longitude, mandatory data field.
setActionType(ActionType action) ActionType as ADD/DELETE when user add/remove home address, mandatory data field.
setLabel(String label) For the name alias for this home, optional data field.
enum index ActionType
0 ADD
1 DELETE


Search API sample code synchronously using execute() method

1
2
3
4
5
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder
        .setEvent(SetHomeEvent.builder().setLabel("Label").setEntityId("EntityId")
        .setActionType(SetHomeEvent.ActionType.SET).setLat(31.201840).setLon(121.541237)
        .build()).build().execute();
1
2
3
4
5
var builder = dataCollectorClient.sendEventRequest();
var response = builder
        .setEvent(SetHomeEvent.builder().setLabel("Label").setEntityId("EntityId")
        .setActionType(SetHomeEvent.ActionType.SET).setLat(31.201840).setLon(121.541237)
        .build()).build().execute()

You can also call API asynchronously using asyncCall() method of builder if no need to cancel the request.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
SendEventRequest.Builder builder = client.sendEventRequest();
builder.setEvent(SetHomeEvent.builder()
    .setLabel("Label").setEntityId("faked_id")
    .setActionType(SetHomeEvent.ActionType.SET).setLat(31.201840).setLon(121.541237).build())
    .asyncCall(new Callback<SendEventResponse>() {

        @Override
        public void onSuccess(SendEventResponse response) {
            System.out.println("\n[Async SendEvent Response]: \n" + DataCollectorJsonConverter.toJson(response));
        }

        @Override
        public void onFailure(Throwable t) {
            if(t!= null) {
                t.printStackTrace();
            }
        }
    });
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
var builder = client.sendEventRequest();

builder.setEvent(SetHomeEvent.builder()
    .setLabel("Label").setEntityId("faked_id")
    .setActionType(SetHomeEvent.ActionType.SET).setLat(31.201840).setLon(121.541237).build())
    .asyncCall(new Callback<SendEventResponse>() {

        @Override
        public void onSuccess(SendEventResponse response) {
            System.out.println("\n[Async SendEvent Response]: \n" + DataCollectorJsonConverter.toJson(response));
        }

        @Override
        public void onFailure(Throwable t) {
            if(t!= null) {
                t.printStackTrace();
            }
        }
    });

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Set Work Event

Set work event should be sent by HMI when user adds/removes work address, user can add/remove by setting ActionType as ADD/DELETE.

Key methods

Method Details
setEntityId(String entity_id) The EntityId address/POI, mandatory data field.
setLat(Double lat) Set to raw latitude, mandatory data field.
setLon(Double lon) Set to raw longitude, mandatory data field.
setActionType(ActionType action) ActionType as ADD/DELETE when user add/remove work address, mandatory data field.
setLabel(String label) For the name alias for this work, optional data field.
enum index ActionType
0 ADD
1 DELETE


Search API sample code synchronously using execute() method

1
2
3
4
5
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder
        .setEvent(SetWorkEvent.builder().setLabel("Label").setEntityId("EntityId")
        .setActionType(SetWorkEvent.ActionType.SET).setLat(31.201840).setLon(121.541237)
        .build()).build().execute();
1
2
3
4
5
var builder = dataCollectorClient.sendEventRequest();
var response = builder
        .setEvent(SetWorkEvent.builder().setLabel("Label").setEntityId("EntityId")
        .setActionType(SetWorkEvent.ActionType.SET).setLat(31.201840).setLon(121.541237)
        .build()).build().execute()

You can also call API asynchronously using asyncCall() method of builder if no need to cancel the request.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
SendEventRequest.Builder builder = client.sendEventRequest();

builder.setEvent(SetWorkEvent.builder()
    .setLabel("Label").setEntityId("faked_id")
    .setActionType(SetWorkEvent.ActionType.SET).setLat(31.201840).setLon(121.541237).build())
    .asyncCall(new Callback<SendEventResponse>() {

        @Override
        public void onSuccess(SendEventResponse response) {
            System.out.println("\n[Async SendEvent Response]: \n" + DataCollectorJsonConverter.toJson(response));
        }

        @Override
        public void onFailure(Throwable t) {
            if(t!= null) {
                t.printStackTrace();
            }
        }
    });
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
var builder = client.sendEventRequest();

builder.setEvent(SetWorkEvent.builder()
    .setLabel("Label").setEntityId("faked_id")
    .setActionType(SetWorkEvent.ActionType.SET).setLat(31.201840).setLon(121.541237).build())
    .asyncCall(new Callback<SendEventResponse>() {

        @Override
        public void onSuccess(SendEventResponse response) {
            System.out.println("\n[Async SendEvent Response]: \n" + DataCollectorJsonConverter.toJson(response));
        }

        @Override
        public void onFailure(Throwable t) {
            if(t!= null) {
                t.printStackTrace();
            }
        }
    });

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Vehicle Event

Start Engine Event

When ignition is turned on, HMI application should send a "START_ENGINE" event.

Key methods: No need, no mandatory data field need to be filled in.

Sample code

1
2
3
4
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder
        .setEvent(StartEngineEvent.builder().
        .build()).build().execute();
1
2
3
4
 var builder = dataCollectorClient.sendEventRequest();
 var response = builder
         .setEvent(StartEngineEvent.builder().
         .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Stop Engine Event

When ignition is turned off, HMI application should send a "STOP_ENGINE" event.

Key methods: No need, no mandatory data field need to be filled in.

Sample code

1
2
3
4
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder
        .setEvent(StopEngineEvent.builder().
        .build()).build().execute();
1
2
3
4
 var builder = dataCollectorClient.sendEventRequest();
 var response = builder
         .setEvent(StopEngineEvent.builder().
         .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Charge State Event

Should be sent when updates on current charge state of the vehicle.

Key methods:

Method Details
setBatteryLevel(Double battery_level) Set battery level in percentage, mandatory data field.
setBatteryRange(Double battery_range) Set battery range in km, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined in milliseconds, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(ChargeStateEvent.builder().setBatteryLevel(77.7).setBatteryRange(100.0).setTimestamp(1597029160173L)
    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(ChargeStateEvent.builder().setBatteryLevel(77.7).setBatteryRange(100.0).setTimestamp(1597029160173L)
    .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Climate State Event

Should be sent when updates on current climate state of the vehicle.

Key methods:

Method Details
setInsideTemp(Double inside_temp) Set vehicle inside temperature in celsius, optional data field.
setOutsideTemp(Double outside_temp) Set vehicle outside temperature in celsius, mandatory data field.
setDriverTempSetting(Double driver_temp_setting) Set vehicle temperature set by driver in celsius, optional data field.
setTimestamp(Long timestamp) The time at which location was determined in milliseconds, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(ClimateStateEvent.builder().setDriverTempSetting(7.7).setInsideTemp(7.7).setOutsideTemp(7.7).setTimestamp(1597029160173L)
    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(CClimateStateEvent.builder().setDriverTempSetting(7.7).setInsideTemp(7.7).setOutsideTemp(7.7).setTimestamp(1597029160173L)
            .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Sensor Event

AcceleratorPedal Event

Should be sent when updates on accelerator pedal from the sensor.

Key methods

Method Details
setAcceleratorPedalList(AcceleratorPedalItem[] accelerator_pedal_list) List of List of AcceleratorPedalItem from sensor at periodic intervals, mandatory data field.

AcceleratorPedalItem

Key methods

Method Details
setPosition(Integer position) Set position in percentage, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(AcceleratorPedalEvent.builder().setAcceleratorPedalList(new AcceleratorPedalItem[] { AcceleratorPedalItem.builder().setPosition(7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(AcceleratorPedalEvent.builder().setAcceleratorPedalList(new AcceleratorPedalItem[] { AcceleratorPedalItem.builder().setPosition(7).setTimestamp(1597029160173L).build()})
        .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

ASR Event

Should be sent when updates on current Anti-Slip Control status from the vehicle sensor.

Key methods

Method Details
setASRList(ASRItem[] asr_list) List of ASRItem items at periodic intervals, mandatory data field.

ASRItem

Key methods

Method Details
setActive(Boolean active) Set Anti-Slip Control / Traction Control System status, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(ASREvent.builder().setASRList(new ASRItem[] { ASRItem.builder().setActive(true).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(ASREvent.builder().setASRList(new ASRItem[] { ASRItem.builder().setActive(true).setTimestamp(1597029160173L).build()})
        .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

BrakingDecel Event

Should be sent when updates on braking deceleration from the sensor.

Key methods

Method Details
setBrakingDecelList(BrakingDecelItem[] braking_decel_list) List of BrakingDecelItem items at periodic intervals, mandatory data field.

BrakingDecelItem

Key methods

Method Details
setDeceleration(Double deceleration) Set vehicle braking deceleration value, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(BrakingDecelEvent.builder().setBrakingDecelList(new BrakingDecelItem[] {BrakingDecelItem.builder().setDeceleration(1.0).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(BrakingDecelEvent.builder().setBrakingDecelList(new BrakingDecelItem[] {BrakingDecelItem.builder().setDeceleration(1.0).setTimestamp(1597029160173L).build()})
        .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

EngineLoad Event

Should be sent when updates on current engine load in percentage for the sensor.

Key methods

Method Details
setEngineLoadList(EngineLoadItem[] engine_load_list) List of EngineLoadItem items at periodic intervals, mandatory data field.

EngineLoadItem

Key methods

Method Details
setValue(Double value) Set engine load in percentage, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(EngineLoadEvent.builder().setEngineLoadList(new EngineLoadItem[] {EngineLoadItem.builder().setValue(1).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(EngineLoadEvent.builder().setEngineLoadList(new EngineLoadItem[] {EngineLoadItem.builder().setValue(1).setTimestamp(1597029160173L).build()})
        .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

EngineSpeed Event

Should be sent when updates on current engine rotations per minute in the range from the sensor.

Key methods

Method Details
setEngineSpeedList(EngineSpeedItem[] engine_speed_list) List of EngineSpeedItem items at periodic intervals, mandatory data field.

EngineSpeedItem

Key methods

Method Details
setValue(Double value) Set engine engine rotations per minute, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(EngineSpeedEvent.builder().setEngineSpeedList(new EngineSpeedItem[] {EngineSpeedItem.builder().setValue(100.0).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(EngineSpeedEvent.builder().setEngineSpeedList(new EngineSpeedItem[] {EngineSpeedItem.builder().setValue(100.0).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

FuelLevel Event

Should be sent when updates on current fuel level, in percentage from the sensor.

Key methods

Method Details
setFuelLevelList(FuelLevelItem[] fuel_level_list) List of FuelLevelItem items at periodic intervals, mandatory data field.

FuelLevelItem

Key methods

Method Details
setValue(Double value) Set fuel level percentage value in percentage, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(FuelLevelEvent.builder().setFuelLevelList(new FuelLevelItem[] {FuelLevelItem.builder().setValue(1.0).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(FuelLevelEvent.builder().setFuelLevelList(new FuelLevelItem[] {FuelLevelItem.builder().setValue(1.0).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

GpsProbe Event

HMI/Application should send gps data at specified frequency with the "GPS_PROBE" event all the time after engine start.

Key methods

Method Details
setProbeList(ProbeListItem[] probe_list) List of ProbeListItem items at periodic intervals.

ProbeListItem

Key methods

Method Details
setLat(Double lat) Set to raw latitude, mandatory data field.
setLon(Double lon) Set to raw longitude, mandatory data field.
setAltitude(Double altitude) Set altitude, measured in meters, optional data field.
setSpeed(_Double speed) Set the instantaneous speed of the device in meters per second, optional data field.
setHorizontalAccuracy(Double horizontal_accuracy) Set the radius of uncertainty for the location, measured in meters, optional data field.
setVerticalAccuracy(Double vertical_accuracy) Set the accuracy of the altitude value in meters, optional data field.
setDirection(Heading heading) The direction in which the device is traveling must be enum Heading, optional data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.
setHeadingAngle(Double heading_angle) The direction in which the device is traveling with respect no north, degree value(0-360), optional data field.
enum index Heading
0 N
1 NE
2 E
3 SE
4 S
5 SW
6 NW
7 W

Sample code

1
2
3
4
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(GpsProbeEvent.builder().setProbeList(new ProbeListItem[]
{ProbeListItem.builder().setLat(37.123456).setLon(122.123456).setTimestamp(1597029160173L).build()}
).build()) .build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(GpsProbeEvent.builder().setProbeList(new ProbeListItem[] {ProbeListItem.builder().setLat(37.123456).setLon(122.123456).setTimestamp(1597029160173L).build()})
.build()) .build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Ignition Event

Should be sent when updates on current ignition value from vehicle sensor.

Key methods

Method Details
setIgnitionList(IgnitionItem[] ignition_list) List of IgnitionItem items at periodic intervals, mandatory data field.

IgnitionItem

Key methods

Method Details
setStatus((Integer status) Set status of ignition(1 - OFF 2 - ACCESSORY 3 - RUN 4 - START), mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(IgnitionEvent.builder().setIgnitionList(new IgnitionItem[] {IgnitionItem.builder().setStatus(1).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(IgnitionEvent.builder().setIgnitionList(new IgnitionItem[] {IgnitionItem.builder().setStatus(1).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

RelativeAcceleratorPedal Event

Should be sent when updates on current relative accelerator pedal from the sensor .

Key methods

Method Details
setRelativeAcceleratorPedalList(RelativeAcceleratorPedalItem[] relative_accelerator_pedal_list) List of RelativeAcceleratorPedalItem items at periodic intervals, mandatory data field.

RelativeAcceleratorPedalItem

Key methods

Method Details
setPosition(Integer position) Set position value in percentage, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(RelativeAcceleratorPedalEvent.builder().setRelativeAcceleratorPedalList(new RelativeAcceleratorPedalItem[] {RelativeAcceleratorPedalItem.builder().setPosition(77).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(RelativeAcceleratorPedalEvent.builder().setRelativeAcceleratorPedalList(new RelativeAcceleratorPedalItem[] {RelativeAcceleratorPedalItem.builder().setPosition(77).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

RuntimeSinceEngineStart Event

Should be sent when updates on UTC timestamp in seconds since engine started, in seconds.

Key methods

Method Details
setRuntimeSinceEngineStartList(RuntimeSinceEngineStartItem[] runtime_since_engine_start_list) List of RuntimeSinceEngineStartItem items at periodic intervals, mandatory data field.

RuntimeSinceEngineStartItem

Key methods

Method Details
setValue(Double value) Set UTC timestamp in seconds since engine started in seconds, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(RuntimeSinceEngineStartEvent.builder().setRuntimeSinceEngineStartList(new RuntimeSinceEngineStartItem[] {RuntimeSinceEngineStartItem.builder().setValue(77).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(RuntimeSinceEngineStartEvent.builder().setRuntimeSinceEngineStartList(new RuntimeSinceEngineStartItem[] {RuntimeSinceEngineStartItem.builder().setValue(77).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

VehicleSpeed Event

Should be sent when updates on vehicle speed in meters per second.

Key methods

Method Details
setVehicleSpeedList(VehicleSpeedItem[] vehicle_speed_list) List of VehicleSpeedItem items at periodic intervals, mandatory data field.

VehicleSpeedItem

Key methods

Method Details
setValue(Double value) Set vehicle speed in meters per second, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(VehicleSpeedEvent.builder().setVehicleSpeedList(new VehicleSpeedItem[] {VehicleSpeedItem.builder().setValue(77.7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(VehicleSpeedEvent.builder().setVehicleSpeedList(new VehicleSpeedItem[] {VehicleSpeedItem.builder().setValue(77.7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Phone Event

Accelerometer Event

Should be sent when updates on current acceleration forces, including gravity, in m/s^2

Key methods

Method Details
setAcceleratormeterList(AccelerometerItem[] accelerometer_list) List of AccelerometerItem items at periodic intervals, mandatory data field.

AccelerometerItem

Key methods

Method Details
setX(Double x) Set acceleration force along the X axis, mandatory data field.
setY(Double y) Set acceleration force along the Y axis, mandatory data field.
setZ(Double z) Set acceleration force along the Z axis, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(AccelerometerEvent.builder().setAcceleratormeterList(new AccelerometerItem[] {AccelerometerItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(AccelerometerEvent.builder().setAcceleratormeterList(new AccelerometerItem[] {AccelerometerItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

AmbientHumidity Event

Should be sent when updates on current ambient humidity, in percentage.

Key methods

Method Details
setAmbientHumidityList(AmbientHumidityItem[] ambient_humidity_list) List of AmbientHumidityItem items at periodic intervals, mandatory data field.

AmbientHumidityItem

Key methods

Method Details
setValue(Double value) Set relative ambient air humidity in percentage, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(AmbientHumidityEvent.builder().setAmbientHumidityList(new AmbientHumidityItem[] {AmbientHumidityItem.builder().setValue(7.7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(AmbientHumidityEvent.builder().setAmbientHumidityList(new AmbientHumidityItem[] {AmbientHumidityItem.builder().setValue(7.7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

AmbientLight Event

Should be sent when updates on current light illuminance.

Key methods

Method Details
setAmbientLightList(AmbientLightItem[] ambient_light_list) List of AmbientLightItem items at periodic intervals, mandatory data field.

AmbientLightItem

Key methods

Method Details
setLightStatus(Integer light_status) Light status(DARK = 0,LIGHT = 1,TWILIGHT = 2,TUNNEL_ON = 3,TUNNEL_OFF = 4,NO_LIGHT_DATA = 7), mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(AmbientLightEvent.builder().setAmbientLightList(new AmbientLightItem[] {AmbientLightItem.builder().setLightStatus(7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(AmbientLightEvent.builder().setAmbientLightList(new AmbientLightItem[] {AmbientLightItem.builder().setLightStatus(7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

AmbientMagnetic Event

Should be sent when update on current field magnetic strength along axis, (in micro-Tesla - uT).

Key methods

Method Details
setAmbientMagneticList(AmbientMagneticItem[] ambient_magnetic_list) List of AmbientMagneticItem items at periodic intervals, mandatory data field.

AmbientMagneticItem

Key methods

Method Details
setX(Double x) Set the ambient magnetic field along the X axis (in micro-Tesla - uT), mandatory data field.
setY(Double y) Set the ambient magnetic field along the Y axis (in micro-Tesla - uT), mandatory data field.
setZ(Double z) Set the ambient magnetic field along the Z axis (in micro-Tesla - uT), mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(AmbientMagneticEvent.builder().setAmbientMagneticList(new AmbientMagneticItem[] {AmbientMagneticItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute()
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(AmbientMagneticEvent.builder().setAmbientMagneticList(new AmbientMagneticItem[] {AmbientMagneticItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

AmbientPressure Event

Should be sent when updates on current pressure, in hPa or mbar.

Key methods

Method Details
setAmbientPressureList(AmbientPressureItem[] ambient_pressure_list) List of AmbientPressureItem items at periodic intervals, mandatory data field.

AmbientPressureItem

Key methods

Method Details
setValue(Double value) Set ambient air pressure in hPa or mbar, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(AmbientPressureEvent.builder().setAmbientPressureList(new AmbientPressureItem[] {AmbientPressureItem.builder().setValue(7.7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(AmbientPressureEvent.builder().setAmbientPressureList(new AmbientPressureItem[] {AmbientPressureItem.builder().setValue(7.7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

AmbientTemperature Event

Should be sent when updates on current ambient air temperature in degree Celsius.

Key methods

Method Details
setAmbientTemperatureList(AmbientTemperatureItem[] ambient_temperature_list) List of AmbientTemperatureItem items at periodic intervals, mandatory data field.

AmbientTemperatureItem

Key methods

Method Details
setValue(Double value) Set ambient air temperature in degree Celsius, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(AmbientTemperatureEvent.builder().setAmbientTemperatureList(new AmbientTemperatureItem[] {AmbientTemperatureItem.builder().setValue(7.7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(AmbientTemperatureEvent.builder().setAmbientTemperatureList(new AmbientTemperatureItem[] {AmbientTemperatureItem.builder().setValue(7.7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

GeomagneticRotationVector Event

Should be sent when updates on rotation vector value based on the geomagnetic field from device, unitless.

Key methods

Method Details
setGeomagneticRotationVectorList(GeomagneticRotationVectorItem[] geomagnetic_rotation_vector_list) List of GeomagneticRotationVectorItem items at periodic intervals, mandatory data field.

GeomagneticRotationVectorItem

Key methods

Method Details
setX(Double x) Set rotation along the X axis (with geomagnetic field), mandatory data field.
setY(Double y) Set rotation along the Y axis (with geomagnetic field), mandatory data field.
setZ(Double z) Set rotation along the Z axis (with geomagnetic field), mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(GeomagneticRotationVectorEvent.builder().setGeomagneticRotationVectorList(new GeomagneticRotationVectorItem[] {GeomagneticRotationVectorItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(GeomagneticRotationVectorEvent.builder().setGeomagneticRotationVectorList(new GeomagneticRotationVectorItem[] {GeomagneticRotationVectorItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Gravity Event

Should be sent when updates on current acceleration forces, including gravity, in m/s^2

Key methods

Method Details
setGravityList(GravityItem[] gravity_list) List of GravityItem items at periodic intervals, mandatory data field.

GravityItem

Key methods

Method Details
setX(Double x) Set measures the force of gravity that is applied to a device on the X axis, mandatory data field.
setY(Double y) Set measures the force of gravity that is applied to a device on the Y axis, mandatory data field.
setZ(Double z) Set measures the force of gravity that is applied to a device on the Z axis, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(GravityEvent.builder().setGravityList(new GravityItem[] {GravityItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(GravityEvent.builder().setGravityList(new GravityItem[] {GravityItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Gyroscope Event

Should be sent when updates on current acceleration forces, including gravity, in m/s^2

Key methods

Method Details
setGyroscopeList(GyroscopeItem[] gyroscope_list) List of GyroscopeItem items at periodic intervals, mandatory data field.

GyroscopeItem

Key methods

Method Details
setX(Double x) Set rate of rotation around the X axis mandatory data field.
setY(Double y) Set rate of rotation around the Y axis, mandatory data field.
setZ(Double z) Set rate of rotation around the Z axis, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(GyroscopeEvent.builder().setGyroscopeList(new GyroscopeItem[] {GyroscopeItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(GyroscopeEvent.builder().setGyroscopeList(new GyroscopeItem[] {GyroscopeItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Heading Event

Should be sent when updates on current orientation, in degrees.

Key methods

Method Details
setHeadingList(HeadingItem[] heading_list) List of HeadingItem items at periodic intervals, mandatory data field.

HeadingItem

Key methods

Method Details
setHeadingAngle(Integer heading_angle) Set the direction in which the device is traveling with respect to north, degree value (0-360), mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(HeadingEvent.builder().setHeadingList(new HeadingItem[] {HeadingItem.builder().setHeadingAngle(7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(HeadingEvent.builder().setHeadingList(new HeadingItem[] {HeadingItem.builder().setHeadingAngle(7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

LinearAcceleration Event

Should be sent when updates on current acceleration forces applied to (x, y, z), in m/s^2.

Key methods

Method Details
setLinearAccelerationList(LinearAccelerationItem[] linear_acceleration_list) List of LinearAccelerationItem items at periodic intervals, mandatory data field.

LinearAccelerationItem

Key methods

Method Details
setX(Double x) Set acceleration force along the X axis (excluding gravity), mandatory data field.
setY(Double y) Set acceleration force along the Y axis (excluding gravity), mandatory data field.
setZ(Double z) Set acceleration force along the Z axis (excluding gravity), mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(LinearAccelerationEvent.builder().setLinearAccelerationList(new LinearAccelerationItem[] {LinearAccelerationItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(LinearAccelerationEvent.builder().setLinearAccelerationList(new LinearAccelerationItem[] {LinearAccelerationItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

RotationVector Event

Should be sent when updates on rotation vector components, unitless

Key methods

Method Details
setRotationVectorList(RotationVectorItem[] rotation_vector_list) List of RotationVectorItem items at periodic intervals, mandatory data field.

RotationVectorItem

Key methods

Method Details
setX(Double x) Set rotation along the X axis, mandatory data field.
setY(Double y) Set Rotation along the Y axis, mandatory data field.
setZ(Double z) Set Rotation along the Z axis, mandatory data field.
setTimestamp(Long timestamp) The time at which location was determined, mandatory data field.

Sample code

1
2
3
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(RotationVectorEvent.builder().setRotationVectorList(new RotationVectorItem[] {RotationVectorItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
                    .build()).build().execute();
1
2
3
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(RotationVectorEvent.builder().setRotationVectorList(new RotationVectorItem[] {RotationVectorItem.builder().setX(7.7).setY(7.7).setZ(7.7).setTimestamp(1597029160173L).build()})
        .build()).build().execute();

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}