com.geotab.model.entity.device.GoCurve Maven / Gradle / Ivy
package com.geotab.model.entity.device;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.geotab.model.CustomParameter;
import com.geotab.model.entity.enginetype.EngineType;
import com.geotab.model.entity.group.Group;
import com.geotab.model.entity.worktime.WorkTime;
import com.geotab.model.enumeration.DevicePlan;
import com.geotab.model.enumeration.DeviceType;
import com.geotab.model.enumeration.GoTalkLanguage;
import com.geotab.model.enumeration.HosOption;
import com.geotab.util.DeviceDefaultsUtil;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* A GoCurve device. Additional properties can be seen in {@link GoDevice}
*/
@NoArgsConstructor
@Getter
@Setter
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public abstract class GoCurve extends GoDevice implements OdometerAdjustmentProviderAware,
EngineHoursAdjustmentProviderAware {
/**
* The acceleration warning accelerometer threshold (y axis) value for the vehicle. A positive
* value that when exceeded will trigger device beeping. Threshold value to mS2 conversion
* (threshold * 18 = milli-g / 1000 = g / 1.0197162 = mS2). Default [22].
*/
protected Integer accelerationWarningThreshold;
/**
* The accelerometer threshold warning factor value for this vehicle. Default [0].
*/
protected Integer accelerometerThresholdWarningFactor;
/**
* The braking warning accelerometer threshold (y axis) value for the vehicle. A negative value
* that when exceeded will trigger device beeping. Threshold value to mS2 conversion (threshold *
* 18 = milli-g / 1000 = g / 1.0197162 = mS2). Default [-34].
*/
protected Integer brakingWarningThreshold;
/**
* The cornering warning threshold (x axis) value for the vehicle. A positive value that when
* exceeded will trigger device beeping (the additive inverse is automatically applied: 26/-26).
* Threshold value to mS2 conversion (threshold * 18 = milli-g / 1000 = g / 1.0197162 = mS2).
* Default [26].
*/
protected Integer corneringWarningThreshold;
/**
* Toggle to enable beeping when any of the acceleration thresholds are exceeded by device
* accelerometer readings. Default [false].
*/
@JsonProperty("enableBeepOnDangerousDriving")
protected boolean enableBeepOnDangerousDriving;
/**
* Toggle to enable beeping when the vehicle's RPM exceeds the 'RpmValue'. Default [false].
*/
@JsonProperty("enableBeepOnRpm")
protected boolean enableBeepOnRpm;
/**
* The offset to be applied engine hours data reported by the engine computer. Default [0].
*/
protected Integer engineHourOffset;
/**
* Toggle to enable active tracking on the device. enables Active Tracking which triggers the
* device to transmit data more frequently. This allows for continuously up-to-date vehicle
* positions animated on the live map. It also enables live server-side driver alerts.
*
* Default [false].
*
*
This feature is only supported on the ProPlus plan. Turning on this feature on a device
* using the Pro plan will automatically upgrade the device to the ProPlus plan with all
* associated charges.
*/
@JsonProperty("isActiveTrackingEnabled")
protected boolean isActiveTrackingEnabled;
/**
* Value which toggles beeping if an unbuckled seat belt is detected. This will only work if the
* device is able to obtain seat belt information from the vehicle. Default [false].
*/
@JsonProperty("isDriverSeatbeltWarningOn")
protected boolean isDriverSeatbeltWarningOn;
/**
* Value which toggles monitoring both passenger and driver unbuckled seat belt, otherwise only
* the driver is monitored. Default [false].
*/
@JsonProperty("isPassengerSeatbeltWarningOn")
protected boolean isPassengerSeatbeltWarningOn;
/**
* Value which toggles device beeping when the vehicle is reversing. Default [false].
*/
@JsonProperty("isReverseDetectOn")
protected boolean isReverseDetectOn;
/**
* Value which toggles device IOX USB connection. Default [true].
*/
@JsonProperty("isIoxConnectionEnabled")
protected boolean isIoxConnectionEnabled;
/**
* Used to correct the odometer value received from the engine. Default [1].
*/
protected Float odometerFactor;
/**
* The offset to be applied odometer reported by the engine computer. Default [0].
*/
protected Double odometerOffset;
/**
* The RPM value that when exceeded triggers device beeping. Default [3500].
*/
protected Integer rpmValue;
/**
* The value in km/h that below will not trigger 'Seat belt Warning'. Default [10].
*/
protected Double seatbeltWarningSpeed;
public GoCurve(String id, String name, Long version, DeviceType deviceType,
LocalDateTime ignoreDownloadsUntil, String serialNumber, Integer productId,
String vehicleIdentificationNumber, String licensePlate, String licenseState,
Short major, Short minor, Duration timeToDownload, WorkTime workTime,
List groups, List devicePlans, boolean pinDevice,
String timeZoneId, Float maxSecondsBetweenLogs,
LocalDateTime activeFrom, LocalDateTime activeTo, String comment,
DeviceFlags deviceFlags, List autoGroups, List customParameters,
boolean disableBuzzer, boolean enableBeepOnIdle, boolean enableMustReprogram,
boolean enableSpeedWarning, EngineType engineType, String engineVehicleIdentificationNumber,
boolean ensureHotStart, Integer gpsOffDelay, Integer idleMinutes, Boolean isSpeedIndicator,
Double minAccidentSpeed, Short parameterVersion, Double speedingOff,
Double speedingOn, GoTalkLanguage goTalkLanguage,
Double fuelTankCapacity, Boolean disableSleeperBerth,
HosOption autoHos, Short parameterVersionOnDevice,
Integer accelerationWarningThreshold, Integer accelerometerThresholdWarningFactor,
Integer brakingWarningThreshold, Integer corneringWarningThreshold,
boolean enableBeepOnDangerousDriving, boolean enableBeepOnRpm,
Integer engineHourOffset, boolean isActiveTrackingEnabled, boolean isDriverSeatbeltWarningOn,
boolean isPassengerSeatbeltWarningOn, boolean isReverseDetectOn,
boolean isIoxConnectionEnabled,
Float odometerFactor, Double odometerOffset, Integer rpmValue,
Double seatbeltWarningSpeed, Map customFeatures) {
super(id, name, version, deviceType, ignoreDownloadsUntil, serialNumber, productId,
vehicleIdentificationNumber, licensePlate, licenseState, major, minor,
timeToDownload, workTime, groups, devicePlans, pinDevice, timeZoneId,
maxSecondsBetweenLogs, activeFrom, activeTo, comment, deviceFlags, autoGroups,
customParameters, disableBuzzer, enableBeepOnIdle, enableMustReprogram, enableSpeedWarning,
engineType, engineVehicleIdentificationNumber, ensureHotStart, gpsOffDelay,
idleMinutes, isSpeedIndicator, minAccidentSpeed, parameterVersion, speedingOff, speedingOn,
goTalkLanguage, fuelTankCapacity, disableSleeperBerth, autoHos, parameterVersionOnDevice,
customFeatures);
this.accelerationWarningThreshold = accelerationWarningThreshold;
this.accelerometerThresholdWarningFactor = accelerometerThresholdWarningFactor;
this.brakingWarningThreshold = brakingWarningThreshold;
this.corneringWarningThreshold = corneringWarningThreshold;
this.enableBeepOnDangerousDriving = enableBeepOnDangerousDriving;
this.enableBeepOnRpm = enableBeepOnRpm;
this.engineHourOffset = engineHourOffset;
this.isActiveTrackingEnabled = isActiveTrackingEnabled;
this.isDriverSeatbeltWarningOn = isDriverSeatbeltWarningOn;
this.isPassengerSeatbeltWarningOn = isPassengerSeatbeltWarningOn;
this.isReverseDetectOn = isReverseDetectOn;
this.isIoxConnectionEnabled = isIoxConnectionEnabled;
this.odometerFactor = odometerFactor;
this.odometerOffset = odometerOffset;
this.rpmValue = rpmValue;
this.seatbeltWarningSpeed = seatbeltWarningSpeed;
}
@Override
public void populateDefaults() {
super.populateDefaults();
DeviceDefaultsUtil.addGoCurveDefaults(this);
}
}