/*
* 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 androidx.annotation.NonNull;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCResponse;
import com.smartdevicelink.proxy.rpc.enums.Result;
import java.util.Hashtable;
/**
* Subscribe Vehicle Data Response is sent, when SubscribeVehicleData has been called
*
* @since SmartDeviceLink 2.0
*/
public class SubscribeVehicleDataResponse extends RPCResponse {
public static final String KEY_SPEED = "speed";
public static final String KEY_RPM = "rpm";
public static final String KEY_FUEL_LEVEL = "fuelLevel";
public static final String KEY_EXTERNAL_TEMPERATURE = "externalTemperature";
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_FUEL_LEVEL_STATE = "fuelLevel_State";
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_HANDS_OFF_STEERING = "handsOffSteering";
public static final String KEY_WINDOW_STATUS = "windowStatus";
/**
* Constructs a new SubscribeVehicleDataResponse object
*/
public SubscribeVehicleDataResponse() {
super(FunctionID.SUBSCRIBE_VEHICLE_DATA.toString());
}
/**
*
Constructs a new SubscribeVehicleDataResponse object indicated by the Hashtable
* parameter
*
*
* @param hash The Hashtable to use
*/
public SubscribeVehicleDataResponse(Hashtable hash) {
super(hash);
}
/**
* Constructs a new SubscribeVehicleDataResponse object
* @param success whether the request is successfully processed
* @param resultCode whether the request is successfully processed
*/
public SubscribeVehicleDataResponse(@NonNull Boolean success, @NonNull Result resultCode) {
this();
setSuccess(success);
setResultCode(resultCode);
}
/**
* Sets Gps
* @param gps a VehicleDataResult related to GPS
*/
public void setGps(VehicleDataResult gps) {
setParameters(KEY_GPS, gps);
}
/**
* Gets Gps
* @return a VehicleDataResult related to GPS
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getGps() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_GPS);
}
/**
* Sets Speed
* @param speed a VehicleDataResult related to speed
*/
public void setSpeed(VehicleDataResult speed) {
setParameters(KEY_SPEED, speed);
}
/**
* Gets Speed
* @return a VehicleDataResult related to speed
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getSpeed() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_SPEED);
}
/**
* Sets rpm
* @param rpm a VehicleDataResult related to RPM
*/
public void setRpm(VehicleDataResult rpm) {
setParameters(KEY_RPM, rpm);
}
/**
* Gets rpm
* @return a VehicleDataResult related to RPM
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getRpm() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_RPM);
}
/**
* Sets Fuel Level
* @param fuelLevel a VehicleDataResult related to Fuel Level
*/
public void setFuelLevel(VehicleDataResult fuelLevel) {
setParameters(KEY_FUEL_LEVEL, fuelLevel);
}
/**
* Gets Fuel Level
* @return a VehicleDataResult related to FuelLevel
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getFuelLevel() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_FUEL_LEVEL);
}
/**
* Sets Fuel Level State
* @param fuelLevel_State a VehicleDataResult related to FuelLevel State
*/
@Deprecated
public void setFuelLevel_State(VehicleDataResult fuelLevel_State) {
setFuelLevel(fuelLevel_State);
}
/**
* Gets Fuel Level State
* @return a VehicleDataResult related to FuelLevel State
*/
@Deprecated
public VehicleDataResult getFuelLevel_State() {
return getFuelLevelState();
}
/**
* Sets Fuel Level State
* @param fuelLevelState a VehicleDataResult related to FuelLevel State
*/
public void setFuelLevelState(VehicleDataResult fuelLevelState) {
setParameters(KEY_FUEL_LEVEL_STATE, fuelLevelState);
}
/**
* Gets Fuel Level State
* @return a VehicleDataResult related to FuelLevel State
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getFuelLevelState() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_FUEL_LEVEL_STATE);
}
/**
* Sets Instant Fuel Consumption
* @param instantFuelConsumption a VehicleDataResult related to instant fuel consumption
*/
public void setInstantFuelConsumption(VehicleDataResult instantFuelConsumption) {
setParameters(KEY_INSTANT_FUEL_CONSUMPTION, instantFuelConsumption);
}
/**
* Gets Instant Fuel Consumption
* @return a VehicleDataResult related to instant fuel consumption
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getInstantFuelConsumption() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_INSTANT_FUEL_CONSUMPTION);
}
/**
* Sets External Temperature
* @param externalTemperature a VehicleDataResult related to external temperature
*/
public void setExternalTemperature(VehicleDataResult externalTemperature) {
setParameters(KEY_EXTERNAL_TEMPERATURE, externalTemperature);
}
/**
* Gets External Temperature
* @return a VehicleDataResult related to external temperature
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getExternalTemperature() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_EXTERNAL_TEMPERATURE);
}
/**
* Gets currently selected gear data
* @param prndl a VehicleDataResult related to the PRNDL status (automatic transmission gear)
*/
public void setPrndl(VehicleDataResult prndl) {
setParameters(KEY_PRNDL, prndl);
}
/**
* Gets currently selected gear data
* @return a VehicleDataResult related to the PRNDL status (automatic transmission gear)
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getPrndl() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_PRNDL);
}
/**
* Sets Tire Pressure
* @param tirePressure a VehicleDataResult related to tire pressure
*/
public void setTirePressure(VehicleDataResult tirePressure) {
setParameters(KEY_TIRE_PRESSURE, tirePressure);
}
/**
* Gets Tire Pressure
* @return a VehicleDataResult related to tire pressure
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getTirePressure() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_TIRE_PRESSURE);
}
/**
* Sets Odometer
* @param odometer a VehicleDataResult related to the odometer
*/
public void setOdometer(VehicleDataResult odometer) {
setParameters(KEY_ODOMETER, odometer);
}
/**
* Gets Odometer
* @return a VehicleDataResult related to the odometer
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getOdometer() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ODOMETER);
}
/**
* Sets Belt Status
* @param beltStatus a VehicleDataResult related to the seat belt status
*/
public void setBeltStatus(VehicleDataResult beltStatus) {
setParameters(KEY_BELT_STATUS, beltStatus);
}
/**
* Gets Belt Status
* @return a VehicleDataResult related to the seat belt status
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getBeltStatus() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_BELT_STATUS);
}
/**
* Sets Body Information
* @param bodyInformation a VehicleDataResult related to the body info
*/
public void setBodyInformation(VehicleDataResult bodyInformation) {
setParameters(KEY_BODY_INFORMATION, bodyInformation);
}
/**
* Gets Body Information
* @return a VehicleDataResult related to the body info
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getBodyInformation() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_BODY_INFORMATION);
}
/**
* Sets Device Status
* @param deviceStatus a VehicleDataResult related to the device status of the connected device
*/
public void setDeviceStatus(VehicleDataResult deviceStatus) {
setParameters(KEY_DEVICE_STATUS, deviceStatus);
}
/**
* Gets Device Status
* @return a VehicleDataResult related to the device status of the connected device
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getDeviceStatus() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_DEVICE_STATUS);
}
/**
* Sets Driver Braking
* @param driverBraking a VehicleDataResult related to the driver breaking status
*/
public void setDriverBraking(VehicleDataResult driverBraking) {
setParameters(KEY_DRIVER_BRAKING, driverBraking);
}
/**
* Gets Driver Braking
* @return a VehicleDataResult related to the driver breaking status
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getDriverBraking() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_DRIVER_BRAKING);
}
/**
* Sets Wiper Status
* @param wiperStatus a VehicleDataResult related to the wiper status
*/
public void setWiperStatus(VehicleDataResult wiperStatus) {
setParameters(KEY_WIPER_STATUS, wiperStatus);
}
/**
* Gets Wiper Status
* @return a VehicleDataResult related to the wiper status
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getWiperStatus() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_WIPER_STATUS);
}
/**
* Sets Head Lamp Status
* @param headLampStatus a VehicleDataResult related to the headlamp status
*/
public void setHeadLampStatus(VehicleDataResult headLampStatus) {
setParameters(KEY_HEAD_LAMP_STATUS, headLampStatus);
}
/**
* Gets Head Lamp Status
* @return a VehicleDataResult related to the headlamp status
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getHeadLampStatus() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_HEAD_LAMP_STATUS);
}
/**
* Sets Engine Torque
* @param engineTorque a VehicleDataResult related to the engine's torque
*/
public void setEngineTorque(VehicleDataResult engineTorque) {
setParameters(KEY_ENGINE_TORQUE, engineTorque);
}
/**
* Gets Engine Torque
* @return a VehicleDataResult related to the engine's torque
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getEngineTorque() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ENGINE_TORQUE);
}
/**
* Sets Engine Oil Life
* @param engineOilLife a VehicleDataResult related to the engine's oil life
*/
public void setEngineOilLife(VehicleDataResult engineOilLife) {
setParameters(KEY_ENGINE_OIL_LIFE, engineOilLife);
}
/**
* Gets Engine Oil Life
* @return a VehicleDataResult related to the engine's oil life
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getEngineOilLife() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ENGINE_OIL_LIFE);
}
/**
* Sets AccPedal Position
* @param accPedalPosition a VehicleDataResult related to the accelerator pedal's position
*/
public void setAccPedalPosition(VehicleDataResult accPedalPosition) {
setParameters(KEY_ACC_PEDAL_POSITION, accPedalPosition);
}
/**
* Gets AccPedal Position
* @return a VehicleDataResult related to the accelerator pedal's position
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getAccPedalPosition() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ACC_PEDAL_POSITION);
}
public void setSteeringWheelAngle(VehicleDataResult steeringWheelAngle) {
setParameters(KEY_STEERING_WHEEL_ANGLE, steeringWheelAngle);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getSteeringWheelAngle() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_STEERING_WHEEL_ANGLE);
}
public void setECallInfo(VehicleDataResult eCallInfo) {
setParameters(KEY_E_CALL_INFO, eCallInfo);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getECallInfo() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_E_CALL_INFO);
}
public void setAirbagStatus(VehicleDataResult airbagStatus) {
setParameters(KEY_AIRBAG_STATUS, airbagStatus);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getAirbagStatus() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_AIRBAG_STATUS);
}
public void setEmergencyEvent(VehicleDataResult emergencyEvent) {
setParameters(KEY_EMERGENCY_EVENT, emergencyEvent);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getEmergencyEvent() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_EMERGENCY_EVENT);
}
public void setClusterModeStatus(VehicleDataResult clusterModeStatus) {
setParameters(KEY_CLUSTER_MODE_STATUS, clusterModeStatus);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getClusterModeStatus() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_CLUSTER_MODE_STATUS);
}
public void setMyKey(VehicleDataResult myKey) {
setParameters(KEY_MY_KEY, myKey);
}
@SuppressWarnings("unchecked")
public VehicleDataResult getMyKey() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_MY_KEY);
}
/**
* Sets Fuel Range
* @param fuelRange a VehicleDataResult related to the fuel range
*/
public void setFuelRange(VehicleDataResult fuelRange) {
setParameters(KEY_FUEL_RANGE, fuelRange);
}
/**
* Gets Fuel Range
* @return a VehicleDataResult related to the fuel range
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getFuelRange() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_FUEL_RANGE);
}
/**
* Sets turnSignal
* @param turnSignal a VehicleDataResult related to the turn signal status
*/
public void setTurnSignal(VehicleDataResult turnSignal) {
setParameters(KEY_TURN_SIGNAL, turnSignal);
}
/**
* Gets turnSignal
* @return a VehicleDataResult related to the turn signal status
*/
@SuppressWarnings("unchecked")
public VehicleDataResult getTurnSignal() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_TURN_SIGNAL);
}
/**
* Sets electronicParkBrakeStatus
* @param electronicParkBrakeStatus a VehicleDataResult related to the electronic park brake status
*/
public void setElectronicParkBrakeStatus(VehicleDataResult electronicParkBrakeStatus){
setParameters(KEY_ELECTRONIC_PARK_BRAKE_STATUS, electronicParkBrakeStatus);
}
/**
* Gets electronicParkBrakeStatus
* @return a VehicleDataResult related to the electronic park brake status
*/
public VehicleDataResult getElectronicParkBrakeStatus(){
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_ELECTRONIC_PARK_BRAKE_STATUS);
}
/**
* Sets cloudAppVehicleID
* @param cloudAppVehicleID a VehicleDataResult related to the cloud app vehicle ID
*/
public void setCloudAppVehicleID(VehicleDataResult cloudAppVehicleID){
setParameters(KEY_CLOUD_APP_VEHICLE_ID, cloudAppVehicleID);
}
/**
* Gets a VehicleDataResult for the subscription response of the CloudAppVehicleID vehicle data item.
* @return a VehicleDataResult related to the cloud app vehicle ID
*/
public VehicleDataResult getCloudAppVehicleID(){
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_CLOUD_APP_VEHICLE_ID);
}
/**
* Sets a value for OEM Custom VehicleData.
* @param vehicleDataName a String value
* @param vehicleDataState a VehicleDataResult value
*/
public void setOEMCustomVehicleData(String vehicleDataName, VehicleDataResult vehicleDataState){
setParameters(vehicleDataName, vehicleDataState);
}
/**
* Gets a VehicleDataResult for the vehicle data item.
* @return a VehicleDataResult related to the vehicle data
*/
public VehicleDataResult getOEMCustomVehicleData(String vehicleDataName){
return (VehicleDataResult) getObject(VehicleDataResult.class, vehicleDataName);
}
/**
* Sets the handsOffSteering.
*
* @param handsOffSteering To indicate whether driver hands are off the steering wheel
* @since SmartDeviceLink 7.0.0
*/
public void setHandsOffSteering(VehicleDataResult handsOffSteering) {
setParameters(KEY_HANDS_OFF_STEERING, handsOffSteering);
}
/**
* Gets the handsOffSteering.
*
* @return VehicleDataResult To indicate whether driver hands are off the steering wheel
* @since SmartDeviceLink 7.0.0
*/
public VehicleDataResult getHandsOffSteering() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_HANDS_OFF_STEERING);
}
/**
* Sets the windowStatus.
*
* @param windowStatus See WindowStatus
* @since SmartDeviceLink 7.0.0
*/
public void setWindowStatus(VehicleDataResult windowStatus) {
setParameters(KEY_WINDOW_STATUS, windowStatus);
}
/**
* Gets the windowStatus.
*
* @return VehicleDataResult See WindowStatus
* @since SmartDeviceLink 7.0.0
*/
public VehicleDataResult getWindowStatus() {
return (VehicleDataResult) getObject(VehicleDataResult.class, KEY_WINDOW_STATUS);
}
}