/*
* Copyright (c) 2017 - 2019, SmartDeviceLink Consortium, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following
* disclaimer in the documentation and/or other materials provided with the
* distribution.
*
* Neither the name of the SmartDeviceLink Consortium, Inc. nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package com.smartdevicelink.proxy.rpc;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import java.util.Hashtable;
/**
* Non periodic vehicle data read request.
*
*
Parameter List
*
*
* Name |
* Type |
* Description |
* Reg. |
* Notes |
* Version |
*
*
* gps |
* Boolean |
* GPS data. See {@linkplain com.smartdevicelink.proxy.rpc.GPSData }for details |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* speed |
* Boolean |
* The vehicle speed in kilometers per hour |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* rpm |
* Boolean |
* The number of revolutions per minute of the engine |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* fuelLevel |
* Boolean |
* The fuel level in the tank (percentage). This parameter is deprecated starting RPC Spec7.0, please see fuelRange. |
* N |
* Subscribable |
* SmartDeviceLink 7.0.0 |
*
*
* fuelLevel_State |
* Boolean |
* The fuel level state. This parameter is deprecated starting RPC Spec 7.0, please see fuelRange. |
* N |
* Subscribable |
* SmartDeviceLink 7.0.0 |
*
*
* fuelRange |
* Boolean |
* The fuel type, estimated range in KM, fuel level/capacity and fuel level state for the vehicle. See struct FuelRange for details. |
* N |
* Subscribable |
* SmartDeviceLink 5.0.0 |
*
*
* instantFuelConsumption |
* Boolean |
* The instantaneous fuel consumption in micro litres |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* externalTemperature |
* Boolean |
* The external temperature in degrees celsius. This parameter is deprecated starting RPCSpec 7.1.0, please see climateData. |
* N |
* Subscribable |
*
* @since SmartDeviceLink 2.0.0
* @property-deprecated in SmartDeviceLink 7.1.0
* |
*
*
* vin |
* Boolean |
* Vehicle identification number |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
*
* gearStatus |
* Boolean |
* See GearStatus |
* N |
* SmartDeviceLink 7.0.0 |
*
*
* prndl |
* Boolean |
* See PRNDL. This parameter is deprecated and it is now covered in `gearStatus` |
* N |
* SmartDeviceLink 7.0.0 |
*
*
* tirePressure |
* Boolean |
* Tire pressure status |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* odometer |
* Boolean |
* Odometer in km |
* N |
* Max Length: 500 |
* SmartDeviceLink 2.0 |
*
*
* beltStatus |
* Boolean |
* The status of the seat belts |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* bodyInformation |
* Boolean |
* The body information including ignition status and internal temp |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* deviceStatus |
* Boolean |
* The device status including signal and battery strength |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* driverBraking |
* Boolean |
* The status of the brake pedal |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* wiperStatus |
* Boolean |
* The status of the wipers |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* headLampStatus |
* Boolean |
* Status of the head lamps |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* engineTorque |
* Boolean |
* Torque value for engine (in Nm) on non-diesel variants |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* engineOilLife |
* Boolean |
* The estimated percentage of remaining oil life of the engine |
* N |
* Subscribable |
* SmartDeviceLink 5.0 |
*
*
* accPedalPosition |
* Boolean |
* Accelerator pedal position (percentage depressed) |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* steeringWheelAngle |
* Boolean |
* Current angle of the steering wheel (in deg) |
* N |
* Subscribable |
* SmartDeviceLink 2.0 |
*
*
* turnSignal |
* Boolean |
* @see TurnSignal |
* N |
* Subscribable |
* SmartDeviceLink 5.0 |
*
*
* cloudAppVehicleID |
* Boolean |
* ID for the vehicle when connecting to cloud applications |
* N |
* Subscribable |
* SmartDeviceLink 5.1 |
*
* stabilityControlsStatus |
* Boolean |
* See StabilityControlsStatus |
* N |
* SmartDeviceLink 7.0.0 |
*
*
*
* handsOffSteering |
* Boolean |
* To indicate whether driver hands are off the steering wheel |
* N |
* SmartDeviceLink 7.0.0 |
*
*
* windowStatus |
* Boolean |
* See WindowStatus |
* N |
* SmartDeviceLink 7.0.0 |
*
*
* climateData |
* Boolean |
* See ClimateData |
* N |
* |
*
* @since SmartDeviceLink 7.1.0
* |
*
*
* seatOccupancy |
* Boolean |
* See SeatOccupancy |
* N |
* |
*
* @since SmartDeviceLink 7.1.0
* |
*
*
*
*
* Response
*
* Non-default Result Codes:
* SUCCESS
* INVALID_DATA
* OUT_OF_MEMORY
* TOO_MANY_PENDING_REQUESTS
* APPLICATION_NOT_REGISTERED
* GENERIC_ERROR
* REJECTED
* VEHICLE_DATA_NOT_ALLOWED
* VEHICLE_DATA_NOT_AVAILABLE
* USER_DISALLOWED
*
* @see SubscribeVehicleData
* @see UnsubscribeVehicleData
* @since SmartDeviceLink 2.0
*/
public class GetVehicleData extends RPCRequest {
public static final String KEY_SPEED = "speed";
public static final String KEY_RPM = "rpm";
/**
* @since SmartDeviceLink 2.0.0
* @deprecated in SmartDeviceLink 7.1.0
*/
@Deprecated
public static final String KEY_EXTERNAL_TEMPERATURE = "externalTemperature";
public static final String KEY_VIN = "vin";
public static final String KEY_PRNDL = "prndl";
public static final String KEY_TIRE_PRESSURE = "tirePressure";
public static final String KEY_ENGINE_TORQUE = "engineTorque";
public static final String KEY_ENGINE_OIL_LIFE = "engineOilLife";
public static final String KEY_ODOMETER = "odometer";
public static final String KEY_GPS = "gps";
public static final String KEY_INSTANT_FUEL_CONSUMPTION = "instantFuelConsumption";
public static final String KEY_BELT_STATUS = "beltStatus";
public static final String KEY_BODY_INFORMATION = "bodyInformation";
public static final String KEY_DEVICE_STATUS = "deviceStatus";
public static final String KEY_DRIVER_BRAKING = "driverBraking";
public static final String KEY_WIPER_STATUS = "wiperStatus";
public static final String KEY_HEAD_LAMP_STATUS = "headLampStatus";
public static final String KEY_ACC_PEDAL_POSITION = "accPedalPosition";
public static final String KEY_STEERING_WHEEL_ANGLE = "steeringWheelAngle";
public static final String KEY_E_CALL_INFO = "eCallInfo";
public static final String KEY_AIRBAG_STATUS = "airbagStatus";
public static final String KEY_EMERGENCY_EVENT = "emergencyEvent";
public static final String KEY_CLUSTER_MODE_STATUS = "clusterModeStatus";
public static final String KEY_MY_KEY = "myKey";
public static final String KEY_FUEL_RANGE = "fuelRange";
public static final String KEY_TURN_SIGNAL = "turnSignal";
public static final String KEY_ELECTRONIC_PARK_BRAKE_STATUS = "electronicParkBrakeStatus";
public static final String KEY_CLOUD_APP_VEHICLE_ID = "cloudAppVehicleID";
public static final String KEY_WINDOW_STATUS = "windowStatus";
public static final String KEY_HANDS_OFF_STEERING = "handsOffSteering";
public static final String KEY_GEAR_STATUS = "gearStatus";
/**
* @deprecated
*/
@Deprecated
public static final String KEY_FUEL_LEVEL = "fuelLevel";
/**
* @deprecated
*/
@Deprecated
public static final String KEY_FUEL_LEVEL_STATE = "fuelLevel_State";
public static final String KEY_STABILITY_CONTROLS_STATUS = "stabilityControlsStatus";
/**
* @since SmartDeviceLink 7.1.0
*/
public static final String KEY_CLIMATE_DATA = "climateData";
/**
* @since SmartDeviceLink 7.1.0
*/
public static final String KEY_SEAT_OCCUPANCY = "seatOccupancy";
/**
* Constructs a new GetVehicleData object
*/
public GetVehicleData() {
super(FunctionID.GET_VEHICLE_DATA.toString());
}
/**
*
* Constructs a new GetVehicleDta object indicated by the Hashtable
* parameter
*
*
* @param hash The Hashtable to use
*/
public GetVehicleData(Hashtable hash) {
super(hash);
}
public GetVehicleData setGps(Boolean gps) {
setParameters(KEY_GPS, gps);
return this;
}
public Boolean getGps() {
return getBoolean(KEY_GPS);
}
public GetVehicleData setSpeed(Boolean speed) {
setParameters(KEY_SPEED, speed);
return this;
}
public Boolean getSpeed() {
return getBoolean(KEY_SPEED);
}
public GetVehicleData setRpm(Boolean rpm) {
setParameters(KEY_RPM, rpm);
return this;
}
public Boolean getRpm() {
return getBoolean(KEY_RPM);
}
/**
* Sets the fuelLevel.
*
* @param fuelLevel The fuel level in the tank (percentage). This parameter is deprecated starting RPC Spec
* 7.0, please see fuelRange.
*/
@Deprecated
public GetVehicleData setFuelLevel(Boolean fuelLevel) {
setParameters(KEY_FUEL_LEVEL, fuelLevel);
return this;
}
/**
* Gets the fuelLevel.
*
* @return Boolean The fuel level in the tank (percentage). This parameter is deprecated starting RPC Spec
* 7.0, please see fuelRange.
*/
@Deprecated
public Boolean getFuelLevel() {
return getBoolean(KEY_FUEL_LEVEL);
}
@Deprecated
public GetVehicleData setFuelLevelState(Boolean fuelLevelState) {
setParameters(KEY_FUEL_LEVEL_STATE, fuelLevelState);
return this;
}
@Deprecated
public Boolean getFuelLevelState() {
return getBoolean(KEY_FUEL_LEVEL_STATE);
}
public GetVehicleData setInstantFuelConsumption(Boolean instantFuelConsumption) {
setParameters(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
return this;
}
public Boolean getInstantFuelConsumption() {
return getBoolean(KEY_INSTANT_FUEL_CONSUMPTION);
}
public GetVehicleData setFuelRange(Boolean fuelRange) {
setParameters(KEY_FUEL_RANGE, fuelRange);
return this;
}
public Boolean getFuelRange() {
return getBoolean(KEY_FUEL_RANGE);
}
/**
* Sets the externalTemperature.
*
* @param externalTemperature The external temperature in degrees celsius. This parameter is deprecated starting RPC
* Spec 7.1.0, please see climateData.
* @since SmartDeviceLink 2.0.0
* @deprecated in SmartDeviceLink 7.1.0
*/
@Deprecated
public GetVehicleData setExternalTemperature(Boolean externalTemperature) {
setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
return this;
}
/**
* Gets the externalTemperature.
*
* @return Boolean The external temperature in degrees celsius. This parameter is deprecated starting RPC
* Spec 7.1.0, please see climateData.
* @since SmartDeviceLink 2.0.0
* @deprecated in SmartDeviceLink 7.1.0
*/
@Deprecated
public Boolean getExternalTemperature() {
return getBoolean(KEY_EXTERNAL_TEMPERATURE);
}
public GetVehicleData setVin(Boolean vin) {
setParameters(KEY_VIN, vin);
return this;
}
public Boolean getVin() {
return getBoolean(KEY_VIN);
}
/**
* Sets the prndl.
*
* @param prndl See PRNDL.
* @deprecated in SmartDeviceLink 7.0.0
*/
@Deprecated
public GetVehicleData setPrndl(Boolean prndl) {
setParameters(KEY_PRNDL, prndl);
return this;
}
/**
* Gets the prndl.
*
* @return Boolean See PRNDL.
* @deprecated in SmartDeviceLink 7.0.0
*/
@Deprecated
public Boolean getPrndl() {
return getBoolean(KEY_PRNDL);
}
public GetVehicleData setTirePressure(Boolean tirePressure) {
setParameters(KEY_TIRE_PRESSURE, tirePressure);
return this;
}
public Boolean getTirePressure() {
return getBoolean(KEY_TIRE_PRESSURE);
}
public GetVehicleData setOdometer(Boolean odometer) {
setParameters(KEY_ODOMETER, odometer);
return this;
}
public Boolean getOdometer() {
return getBoolean(KEY_ODOMETER);
}
public GetVehicleData setBeltStatus(Boolean beltStatus) {
setParameters(KEY_BELT_STATUS, beltStatus);
return this;
}
public Boolean getBeltStatus() {
return getBoolean(KEY_BELT_STATUS);
}
public GetVehicleData setBodyInformation(Boolean bodyInformation) {
setParameters(KEY_BODY_INFORMATION, bodyInformation);
return this;
}
public Boolean getBodyInformation() {
return getBoolean(KEY_BODY_INFORMATION);
}
public GetVehicleData setDeviceStatus(Boolean deviceStatus) {
setParameters(KEY_DEVICE_STATUS, deviceStatus);
return this;
}
public Boolean getDeviceStatus() {
return getBoolean(KEY_DEVICE_STATUS);
}
public GetVehicleData setDriverBraking(Boolean driverBraking) {
setParameters(KEY_DRIVER_BRAKING, driverBraking);
return this;
}
public Boolean getDriverBraking() {
return getBoolean(KEY_DRIVER_BRAKING);
}
public GetVehicleData setWiperStatus(Boolean wiperStatus) {
setParameters(KEY_WIPER_STATUS, wiperStatus);
return this;
}
public Boolean getWiperStatus() {
return getBoolean(KEY_WIPER_STATUS);
}
public GetVehicleData setHeadLampStatus(Boolean headLampStatus) {
setParameters(KEY_HEAD_LAMP_STATUS, headLampStatus);
return this;
}
public Boolean getHeadLampStatus() {
return getBoolean(KEY_HEAD_LAMP_STATUS);
}
public GetVehicleData setEngineTorque(Boolean engineTorque) {
setParameters(KEY_ENGINE_TORQUE, engineTorque);
return this;
}
public Boolean getEngineTorque() {
return getBoolean(KEY_ENGINE_TORQUE);
}
public GetVehicleData setEngineOilLife(Boolean engineOilLife) {
setParameters(KEY_ENGINE_OIL_LIFE, engineOilLife);
return this;
}
public Boolean getEngineOilLife() {
return getBoolean(KEY_ENGINE_OIL_LIFE);
}
public GetVehicleData setAccPedalPosition(Boolean accPedalPosition) {
setParameters(KEY_ACC_PEDAL_POSITION, accPedalPosition);
return this;
}
public Boolean getAccPedalPosition() {
return getBoolean(KEY_ACC_PEDAL_POSITION);
}
public GetVehicleData setSteeringWheelAngle(Boolean steeringWheelAngle) {
setParameters(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
return this;
}
public Boolean getSteeringWheelAngle() {
return getBoolean(KEY_STEERING_WHEEL_ANGLE);
}
public GetVehicleData setECallInfo(Boolean eCallInfo) {
setParameters(KEY_E_CALL_INFO, eCallInfo);
return this;
}
public Boolean getECallInfo() {
return getBoolean(KEY_E_CALL_INFO);
}
public GetVehicleData setAirbagStatus(Boolean airbagStatus) {
setParameters(KEY_AIRBAG_STATUS, airbagStatus);
return this;
}
public Boolean getAirbagStatus() {
return getBoolean(KEY_AIRBAG_STATUS);
}
public GetVehicleData setEmergencyEvent(Boolean emergencyEvent) {
setParameters(KEY_EMERGENCY_EVENT, emergencyEvent);
return this;
}
public Boolean getEmergencyEvent() {
return getBoolean(KEY_EMERGENCY_EVENT);
}
public GetVehicleData setClusterModeStatus(Boolean clusterModeStatus) {
setParameters(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
return this;
}
public Boolean getClusterModeStatus() {
return getBoolean(KEY_CLUSTER_MODE_STATUS);
}
public GetVehicleData setMyKey(Boolean myKey) {
setParameters(KEY_MY_KEY, myKey);
return this;
}
public Boolean getMyKey() {
return getBoolean(KEY_MY_KEY);
}
/**
* Sets a boolean value. If true, subscribes turnSignal data
*
* @param turnSignal a boolean value
*/
public GetVehicleData setTurnSignal(Boolean turnSignal) {
setParameters(KEY_TURN_SIGNAL, turnSignal);
return this;
}
/**
* Gets a boolean value. If true, means the turnSignal data has been subscribed.
*
* @return a Boolean value.
*/
public Boolean getTurnSignal() {
return getBoolean(KEY_TURN_SIGNAL);
}
/**
* Sets a boolean value. If true, subscribes electronicParkBrakeStatus data
*
* @param electronicParkBrakeStatus a boolean value
*/
public GetVehicleData setElectronicParkBrakeStatus(Boolean electronicParkBrakeStatus) {
setParameters(KEY_ELECTRONIC_PARK_BRAKE_STATUS, electronicParkBrakeStatus);
return this;
}
/**
* Gets a boolean value. If true, means the electronicParkBrakeStatus data has been subscribed.
*
* @return a Boolean value.
*/
public Boolean getElectronicParkBrakeStatus() {
return getBoolean(KEY_ELECTRONIC_PARK_BRAKE_STATUS);
}
/**
* Sets a boolean value. If true, gets the cloudAppVehicleID data
*
* @param cloudAppVehicleID a boolean value
*/
public GetVehicleData setCloudAppVehicleID(boolean cloudAppVehicleID) {
setParameters(KEY_CLOUD_APP_VEHICLE_ID, cloudAppVehicleID);
return this;
}
/**
* Gets a boolean value. If true, means the cloudAppVehicleDataID data has been set to retrieve.
*
* @return a Boolean value.
*/
public Boolean getCloudAppVehicleID() {
return getBoolean(KEY_CLOUD_APP_VEHICLE_ID);
}
/**
* Sets a boolean value for OEM Custom VehicleData.
*
* @param vehicleDataName a String value
* @param vehicleDataState a boolean value
*/
public GetVehicleData setOEMCustomVehicleData(String vehicleDataName, Boolean vehicleDataState) {
setParameters(vehicleDataName, vehicleDataState);
return this;
}
/**
* Gets a boolean value for OEM Custom VehicleData.
*
* @return a Boolean value.
*/
public Boolean getOEMCustomVehicleData(String vehicleDataName) {
return getBoolean(vehicleDataName);
}
/**
* Sets the windowStatus.
*
* @param windowStatus See WindowStatus
* @since SmartDeviceLink 7.0.0
*/
public GetVehicleData setWindowStatus(Boolean windowStatus) {
setParameters(KEY_WINDOW_STATUS, windowStatus);
return this;
}
/**
* Gets the windowStatus.
*
* @return Boolean See WindowStatus
* @since SmartDeviceLink 7.0.0
*/
public Boolean getWindowStatus() {
return getBoolean(KEY_WINDOW_STATUS);
}
/**
* Sets the handsOffSteering.
*
* @param handsOffSteering To indicate whether driver hands are off the steering wheel
* @since SmartDeviceLink 7.0.0
*/
public GetVehicleData setHandsOffSteering(Boolean handsOffSteering) {
setParameters(KEY_HANDS_OFF_STEERING, handsOffSteering);
return this;
}
/**
* Gets the handsOffSteering.
*
* @return Boolean To indicate whether driver hands are off the steering wheel
* @since SmartDeviceLink 7.0.0
*/
public Boolean getHandsOffSteering() {
return getBoolean(KEY_HANDS_OFF_STEERING);
}
/**
* Sets the gearStatus.
*
* @param gearStatus See GearStatus
* @since SmartDeviceLink 7.0.0
*/
public GetVehicleData setGearStatus(Boolean gearStatus) {
setParameters(KEY_GEAR_STATUS, gearStatus);
return this;
}
/**
* Gets the gearStatus.
*
* @return GearStatus See GearStatus
* @since SmartDeviceLink 7.0.0
*/
public Boolean getGearStatus() {
return getBoolean(KEY_GEAR_STATUS);
}
/**
* Sets the stabilityControlsStatus.
*
* @param stabilityControlsStatus See StabilityControlsStatus
* @since SmartDeviceLink 7.0.0
*/
public GetVehicleData setStabilityControlsStatus(Boolean stabilityControlsStatus) {
setParameters(KEY_STABILITY_CONTROLS_STATUS, stabilityControlsStatus);
return this;
}
/**
* Gets the stabilityControlsStatus.
*
* @return Boolean See StabilityControlsStatus
* @since SmartDeviceLink 7.0.0
*/
public Boolean getStabilityControlsStatus() {
return getBoolean(KEY_STABILITY_CONTROLS_STATUS);
}
/**
* Sets the climateData.
*
* @param climateData See ClimateData
* @since SmartDeviceLink 7.1.0
*/
public GetVehicleData setClimateData(Boolean climateData) {
setParameters(KEY_CLIMATE_DATA, climateData);
return this;
}
/**
* Gets the climateData.
*
* @return Boolean See ClimateData
* @since SmartDeviceLink 7.1.0
*/
public Boolean getClimateData() {
return getBoolean(KEY_CLIMATE_DATA);
}
/**
* Sets the seatOccupancy.
*
* @param seatOccupancy See SeatOccupancy
* @since SmartDeviceLink 7.1.0
*/
public GetVehicleData setSeatOccupancy(Boolean seatOccupancy) {
setParameters(KEY_SEAT_OCCUPANCY, seatOccupancy);
return this;
}
/**
* Gets the seatOccupancy.
*
* @return Boolean See SeatOccupancy
* @since SmartDeviceLink 7.1.0
*/
public Boolean getSeatOccupancy() {
return getBoolean(KEY_SEAT_OCCUPANCY);
}
}