com.geotab.model.entity.device.Go4v3 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.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@NoArgsConstructor
@Getter
@Setter
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class Go4v3 extends GoCurveAuxiliary implements RfChannelsAware {
/**
* Gets or sets the radio channels as an array of 20 bytes.
*
* [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].
*/
protected short[] channel;
/**
* Gets or sets the channel count. Default [1].
*/
protected Byte channelCount;
/**
* The FrequencyOffset used on the device radio. The default is 1 and should not be changed. Only
* has an effect on Channel Set 0 - which consists of channels 0 to 15. Default [1].
*/
protected Byte frequencyOffset;
/**
* Indicating whether this device has aided GPS enabled. This feature only applies to devices that
* use RF communication in very large installations where an aiding data server has been
* configured. Default [false].
*/
@JsonProperty("isAidedGpsEnabled")
protected boolean isAidedGpsEnabled;
/**
* The toggle to enable RF upload while driving. Default [false].
*/
@JsonProperty("isRfUploadOnWhenMoving")
protected boolean isRfUploadOnWhenMoving;
/**
* The RF parameter version. Default [0].
*/
protected short rfParameterVersion;
@Builder(builderMethodName = "go4v3Builder")
public Go4v3(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, double[] auxWarningSpeed, boolean[] enableAuxWarning,
boolean enableControlExternalRelay, int externalDeviceShutDownDelay, int immobilizeArming,
boolean immobilizeUnit, boolean[] isAuxIgnTrigger, boolean[] isAuxInverted, short[] channel,
Byte channelCount, Byte frequencyOffset, boolean isAidedGpsEnabled,
boolean isRfUploadOnWhenMoving, short rfParameterVersion,
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,
accelerationWarningThreshold, accelerometerThresholdWarningFactor, brakingWarningThreshold,
corneringWarningThreshold, enableBeepOnDangerousDriving, enableBeepOnRpm, engineHourOffset,
isActiveTrackingEnabled, isDriverSeatbeltWarningOn, isPassengerSeatbeltWarningOn,
isReverseDetectOn, isIoxConnectionEnabled, odometerFactor, odometerOffset, rpmValue,
seatbeltWarningSpeed, auxWarningSpeed, enableAuxWarning, enableControlExternalRelay,
externalDeviceShutDownDelay, immobilizeArming, immobilizeUnit, isAuxIgnTrigger,
isAuxInverted, customFeatures);
this.channel = checkAndPadChannelArray(channel);
this.channelCount = channelCount;
this.frequencyOffset = frequencyOffset;
this.isAidedGpsEnabled = isAidedGpsEnabled;
this.isRfUploadOnWhenMoving = isRfUploadOnWhenMoving;
this.rfParameterVersion = rfParameterVersion;
}
@Override
public void populateDefaults() {
super.populateDefaults();
this.productId = 81;
DeviceDefaultsUtil.addRfChannelDefaults(this);
}
public void setChannel(short[] channel) {
this.channel = checkAndPadChannelArray(channel);
}
}