// SDLOnVehicleData.m // #import "SDLOnVehicleData.h" #import "NSMutableDictionary+Store.h" #import "SDLAirbagStatus.h" #import "SDLBeltStatus.h" #import "SDLBodyInformation.h" #import "SDLClimateData.h" #import "SDLClusterModeStatus.h" #import "SDLDeviceStatus.h" #import "SDLECallInfo.h" #import "SDLEmergencyEvent.h" #import "SDLFuelRange.h" #import "SDLGearStatus.h" #import "SDLGPSData.h" #import "SDLHeadLampStatus.h" #import "SDLMyKey.h" #import "SDLRPCParameterNames.h" #import "SDLRPCFunctionNames.h" #import "SDLSeatOccupancy.h" #import "SDLStabilityControlsStatus.h" #import "SDLTireStatus.h" #import "SDLWindowStatus.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnVehicleData #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" - (instancetype)init { self = [super initWithName:SDLRPCFunctionNameOnVehicleData]; if (!self) { return nil; } return self; } #pragma clang diagnostic pop - (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber *)speed rpm:(nullable NSNumber *)rpm instantFuelConsumption:(nullable NSNumber *)instantFuelConsumption fuelRange:(nullable NSArray *)fuelRange externalTemperature:(nullable NSNumber *)externalTemperature turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber *)engineTorque accPedalPosition:(nullable NSNumber *)accPedalPosition steeringWheelAngle:(nullable NSNumber *)steeringWheelAngle engineOilLife:(nullable NSNumber *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey handsOffSteering:(nullable NSNumber *)handsOffSteering windowStatus:(nullable NSArray *)windowStatus { self = [self initWithGps:gps speed:speed rpm:rpm instantFuelConsumption:instantFuelConsumption fuelRange:fuelRange climateData:nil turnSignal:turnSignal vin:vin gearStatus:gearStatus tirePressure:tirePressure odometer:odometer beltStatus:beltStatus bodyInformation:bodyInformation deviceStatus:deviceStatus driverBraking:driverBraking wiperStatus:wiperStatus headLampStatus:headLampStatus engineTorque:engineTorque accPedalPosition:accPedalPosition steeringWheelAngle:steeringWheelAngle engineOilLife:engineOilLife electronicParkBrakeStatus:electronicParkBrakeStatus cloudAppVehicleID:cloudAppVehicleID stabilityControlsStatus:stabilityControlsStatus eCallInfo:eCallInfo airbagStatus:airbagStatus emergencyEvent:emergencyEvent clusterModeStatus:clusterModeStatus myKey:myKey windowStatus:windowStatus handsOffSteering:handsOffSteering seatOccupancy:nil]; if (self) { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" self.externalTemperature = externalTemperature; #pragma clang diagnostic pop } return self; } - (instancetype)initWithGps:(nullable SDLGPSData *)gps speed:(nullable NSNumber *)speed rpm:(nullable NSNumber *)rpm instantFuelConsumption:(nullable NSNumber *)instantFuelConsumption fuelRange:(nullable NSArray *)fuelRange climateData:(nullable SDLClimateData *)climateData turnSignal:(nullable SDLTurnSignal)turnSignal vin:(nullable NSString *)vin gearStatus:(nullable SDLGearStatus *)gearStatus tirePressure:(nullable SDLTireStatus *)tirePressure odometer:(nullable NSNumber *)odometer beltStatus:(nullable SDLBeltStatus *)beltStatus bodyInformation:(nullable SDLBodyInformation *)bodyInformation deviceStatus:(nullable SDLDeviceStatus *)deviceStatus driverBraking:(nullable SDLVehicleDataEventStatus)driverBraking wiperStatus:(nullable SDLWiperStatus)wiperStatus headLampStatus:(nullable SDLHeadLampStatus *)headLampStatus engineTorque:(nullable NSNumber *)engineTorque accPedalPosition:(nullable NSNumber *)accPedalPosition steeringWheelAngle:(nullable NSNumber *)steeringWheelAngle engineOilLife:(nullable NSNumber *)engineOilLife electronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus cloudAppVehicleID:(nullable NSString *)cloudAppVehicleID stabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus eCallInfo:(nullable SDLECallInfo *)eCallInfo airbagStatus:(nullable SDLAirbagStatus *)airbagStatus emergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent clusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus myKey:(nullable SDLMyKey *)myKey windowStatus:(nullable NSArray *)windowStatus handsOffSteering:(nullable NSNumber *)handsOffSteering seatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy { self = [self init]; if (!self) { return nil; } self.gps = gps; self.speed = speed; self.rpm = rpm; self.instantFuelConsumption = instantFuelConsumption; self.fuelRange = fuelRange; self.climateData = climateData; self.turnSignal = turnSignal; self.vin = vin; self.gearStatus = gearStatus; self.tirePressure = tirePressure; self.odometer = odometer; self.beltStatus = beltStatus; self.bodyInformation = bodyInformation; self.deviceStatus = deviceStatus; self.driverBraking = driverBraking; self.wiperStatus = wiperStatus; self.headLampStatus = headLampStatus; self.engineTorque = engineTorque; self.accPedalPosition = accPedalPosition; self.steeringWheelAngle = steeringWheelAngle; self.engineOilLife = engineOilLife; self.electronicParkBrakeStatus = electronicParkBrakeStatus; self.cloudAppVehicleID = cloudAppVehicleID; self.stabilityControlsStatus = stabilityControlsStatus; self.eCallInfo = eCallInfo; self.airbagStatus = airbagStatus; self.emergencyEvent = emergencyEvent; self.clusterModeStatus = clusterModeStatus; self.myKey = myKey; self.windowStatus = windowStatus; self.handsOffSteering = handsOffSteering; self.seatOccupancy = seatOccupancy; return self; } - (void)setGearStatus:(nullable SDLGearStatus *)gearStatus { [self.parameters sdl_setObject:gearStatus forName:SDLRPCParameterNameGearStatus]; } - (nullable SDLGearStatus *)gearStatus { NSError *error = nil; return [self.parameters sdl_objectForName:SDLRPCParameterNameGearStatus ofClass:SDLGearStatus.class error:&error]; } - (void)setGps:(nullable SDLGPSData *)gps { [self.parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable SDLGPSData *)gps { return [self.parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLGPSData.class error:nil]; } - (void)setSpeed:(nullable NSNumber *)speed { [self.parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber *)speed { return [self.parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } - (void)setRpm:(nullable NSNumber *)rpm { [self.parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable NSNumber *)rpm { return [self.parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel:(nullable NSNumber *)fuelLevel { [self.parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable NSNumber *)fuelLevel { return [self.parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel_State:(nullable SDLComponentVolumeStatus)fuelLevel_State { [self.parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable SDLComponentVolumeStatus)fuelLevel_State { return [self.parameters sdl_enumForName:SDLRPCParameterNameFuelLevelState error:nil]; } - (void)setFuelRange:(nullable NSArray *)fuelRange { [self.parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable NSArray *)fuelRange { return [self.parameters sdl_objectsForName:SDLRPCParameterNameFuelRange ofClass:SDLFuelRange.class error:nil]; } - (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { [self.parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable NSNumber *)instantFuelConsumption { return [self.parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; } - (void)setClimateData:(nullable SDLClimateData *)climateData { [self.parameters sdl_setObject:climateData forName:SDLRPCParameterNameClimateData]; } - (nullable SDLClimateData *)climateData { return [self.parameters sdl_objectForName:SDLRPCParameterNameClimateData ofClass:SDLClimateData.class error:nil]; } - (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { [self.parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable NSNumber *)externalTemperature { return [self.parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; } - (void)setVin:(nullable NSString *)vin { [self.parameters sdl_setObject:vin forName:SDLRPCParameterNameVIN]; } - (nullable NSString *)vin { return [self.parameters sdl_objectForName:SDLRPCParameterNameVIN ofClass:NSString.class error:nil]; } - (void)setPrndl:(nullable SDLPRNDL)prndl { [self.parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable SDLPRNDL)prndl { return [self.parameters sdl_enumForName:SDLRPCParameterNamePRNDL error:nil]; } - (void)setTirePressure:(nullable SDLTireStatus *)tirePressure { [self.parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable SDLTireStatus *)tirePressure { return [self.parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLTireStatus.class error:nil]; } - (void)setOdometer:(nullable NSNumber *)odometer { [self.parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable NSNumber *)odometer { return [self.parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; } - (void)setBeltStatus:(nullable SDLBeltStatus *)beltStatus { [self.parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable SDLBeltStatus *)beltStatus { return [self.parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLBeltStatus.class error:nil]; } - (void)setBodyInformation:(nullable SDLBodyInformation *)bodyInformation { [self.parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable SDLBodyInformation *)bodyInformation { return [self.parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLBodyInformation.class error:nil]; } - (void)setDeviceStatus:(nullable SDLDeviceStatus *)deviceStatus { [self.parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable SDLDeviceStatus *)deviceStatus { return [self.parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLDeviceStatus.class error:nil]; } - (void)setDriverBraking:(nullable SDLVehicleDataEventStatus)driverBraking { [self.parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable SDLVehicleDataEventStatus)driverBraking { return [self.parameters sdl_enumForName:SDLRPCParameterNameDriverBraking error:nil]; } - (void)setWiperStatus:(nullable SDLWiperStatus)wiperStatus { [self.parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable SDLWiperStatus)wiperStatus { return [self.parameters sdl_enumForName:SDLRPCParameterNameWiperStatus error:nil]; } - (void)setHandsOffSteering:(nullable NSNumber *)handsOffSteering { [self.parameters sdl_setObject:handsOffSteering forName:SDLRPCParameterNameHandsOffSteering]; } - (nullable NSNumber *)handsOffSteering { NSError *error = nil; return [self.parameters sdl_objectForName:SDLRPCParameterNameHandsOffSteering ofClass:NSNumber.class error:&error]; } - (void)setHeadLampStatus:(nullable SDLHeadLampStatus *)headLampStatus { [self.parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable SDLHeadLampStatus *)headLampStatus { return [self.parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLHeadLampStatus.class error:nil]; } - (void)setEngineOilLife:(nullable NSNumber *)engineOilLife { [self.parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable NSNumber *)engineOilLife { return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; } - (void)setEngineTorque:(nullable NSNumber *)engineTorque { [self.parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable NSNumber *)engineTorque { return [self.parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; } - (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { [self.parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable NSNumber *)accPedalPosition { return [self.parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; } - (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { [self.parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable NSNumber *)steeringWheelAngle { return [self.parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; } - (void)setECallInfo:(nullable SDLECallInfo *)eCallInfo { [self.parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable SDLECallInfo *)eCallInfo { return [self.parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLECallInfo.class error:nil]; } - (void)setAirbagStatus:(nullable SDLAirbagStatus *)airbagStatus { [self.parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable SDLAirbagStatus *)airbagStatus { return [self.parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLAirbagStatus.class error:nil]; } - (void)setEmergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent { [self.parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable SDLEmergencyEvent *)emergencyEvent { return [self.parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLEmergencyEvent.class error:nil]; } - (void)setClusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus { [self.parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; } - (nullable SDLClusterModeStatus *)clusterModeStatus { return [self.parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:SDLClusterModeStatus.class error:nil]; } - (void)setMyKey:(nullable SDLMyKey *)myKey { [self.parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable SDLMyKey *)myKey { return [self.parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLMyKey.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { [self.parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { return [self.parameters sdl_enumForName:SDLRPCParameterNameElectronicParkBrakeStatus error:nil]; } - (void)setTurnSignal:(nullable SDLTurnSignal)turnSignal { [self.parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable SDLTurnSignal)turnSignal { return [self.parameters sdl_enumForName:SDLRPCParameterNameTurnSignal error:nil]; } - (void)setCloudAppVehicleID:(nullable NSString *)cloudAppVehicleID { [self.parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; } - (nullable NSString *)cloudAppVehicleID { return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSString.class error:nil]; } - (void)setStabilityControlsStatus:(nullable SDLStabilityControlsStatus *)stabilityControlsStatus { [self.parameters sdl_setObject:stabilityControlsStatus forName:SDLRPCParameterNameStabilityControlsStatus]; } - (nullable SDLStabilityControlsStatus *)stabilityControlsStatus { return [self.parameters sdl_objectForName:SDLRPCParameterNameStabilityControlsStatus ofClass:SDLStabilityControlsStatus.class error:nil]; } - (void)setWindowStatus:(nullable NSArray *)windowStatus { [self.parameters sdl_setObject:windowStatus forName:SDLRPCParameterNameWindowStatus]; } - (nullable NSArray *)windowStatus { return [self.parameters sdl_objectsForName:SDLRPCParameterNameWindowStatus ofClass:SDLWindowStatus.class error:nil]; } - (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState { [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName]; } - (nullable NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName { return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSObject.class error:nil]; } - (void)setSeatOccupancy:(nullable SDLSeatOccupancy *)seatOccupancy { [self.parameters sdl_setObject:seatOccupancy forName:SDLRPCParameterNameSeatOccupancy]; } - (nullable SDLSeatOccupancy *)seatOccupancy { return [self.parameters sdl_objectForName:SDLRPCParameterNameSeatOccupancy ofClass:SDLSeatOccupancy.class error:nil]; } @end NS_ASSUME_NONNULL_END