package com.ard.work.sdk.zlxd.netty.message.parameters; import lombok.Data; import javax.xml.bind.annotation.*; import java.io.Serializable; /** * 相机通用参数基类 */ @Data @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "parameters") public class CameraParameters implements Serializable { // 基础参数 @XmlElement(name = "videoId") private Integer videoId; @XmlElement(name = "exposureMode") private Integer exposureMode; @XmlElement(name = "shutterSpeedVal") private String shutterSpeedVal; // 1/10 这类字符串,用 String 接收 @XmlElement(name = "shutterSpeedMaxVal") private String shutterSpeedMaxVal; // 空节点,用 String 兼容 @XmlElement(name = "shutterSpeedMinVal") private String shutterSpeedMinVal; @XmlElement(name = "apertureMode") private Integer apertureMode; @XmlElement(name = "apertureSensitivity") private Integer apertureSensitivity; @XmlElement(name = "apertureValue") private Integer apertureValue; @XmlElement(name = "apertureMax") private Integer apertureMax; @XmlElement(name = "apertureMin") private Integer apertureMin; @XmlElement(name = "sensorGainMode") private Integer sensorGainMode; @XmlElement(name = "sensorGain") private Integer sensorGain; @XmlElement(name = "sensorMaxGain") private Integer sensorMaxGain; @XmlElement(name = "sensorMinGain") private Integer sensorMinGain; @XmlElement(name = "exposureRegionMode") private Integer exposureRegionMode; @XmlElement(name = "exposureRegionLeftPos") private Integer exposureRegionLeftPos; @XmlElement(name = "exposureRegionTopPos") private Integer exposureRegionTopPos; @XmlElement(name = "exposureRegionHeight") private Integer exposureRegionHeight; @XmlElement(name = "exposureRegionWidth") private Integer exposureRegionWidth; @XmlElement(name = "exposureCompensation") private Integer exposureCompensation; @XmlElement(name = "autoSlowShutter") private Integer autoSlowShutter; @XmlElement(name = "autoSlowShutterValue") private Integer autoSlowShutterValue; @XmlElement(name = "dayNightMode") private Integer dayNightMode; // 时间段参数(嵌套子节点) @XmlElement(name = "scheduleStart") private TimeNode scheduleStart; @XmlElement(name = "scheduleEnd") private TimeNode scheduleEnd; // 续参数 @XmlElement(name = "sensitivity") private Integer sensitivity; @XmlElement(name = "delayTime") private Integer delayTime; @XmlElement(name = "whiteBalanceMode") private Integer whiteBalanceMode; @XmlElement(name = "redGain") private Integer redGain; @XmlElement(name = "greenGain") private Integer greenGain; @XmlElement(name = "blueGain") private Integer blueGain; @XmlElement(name = "sceneMode") private Integer sceneMode; @XmlElement(name = "gamma") private Integer gamma; @XmlElement(name = "colorGain") private Integer colorGain; @XmlElement(name = "highResolution") private Integer highResolution; @XmlElement(name = "highSensitivity") private Integer highSensitivity; @XmlElement(name = "lowBrtChromaSuppress") private Integer lowBrtChromaSuppress; @XmlElement(name = "colorEnhancement") private Integer colorEnhancement; @XmlElement(name = "highIntensityColor") private Integer highIntensityColor; @XmlElement(name = "lowIntensityColor") private Integer lowIntensityColor; @XmlElement(name = "threshold") private Integer threshold; @XmlElement(name = "videoMode") private Integer videoMode; @XmlElement(name = "imageMirror") private Integer imageMirror; @XmlElement(name = "denoiseFilterMode") private Integer denoiseFilterMode; @XmlElement(name = "denoiseLevel") private Integer denoiseLevel; @XmlElement(name = "denoiseFilter") private Integer denoiseFilter; @XmlElement(name = "denoiseFilterLevel") private Integer denoiseFilterLevel; @XmlElement(name = "timeDomainFilterPara") private Integer timeDomainFilterPara; @XmlElement(name = "spaceDomainFilterPara") private Integer spaceDomainFilterPara; @XmlElement(name = "wideDynamicMode") private Integer wideDynamicMode; @XmlElement(name = "wideDynamicValue") private Integer wideDynamicValue; @XmlElement(name = "backlightMode") private Integer backlightMode; @XmlElement(name = "backlightLeftPos") private Integer backlightLeftPos; @XmlElement(name = "backlightTopPos") private Integer backlightTopPos; @XmlElement(name = "backlightHeight") private Integer backlightHeight; @XmlElement(name = "backlightWidth") private Integer backlightWidth; @XmlElement(name = "backlightValue") private Integer backlightValue; @XmlElement(name = "lightInhibitionMode") private Integer lightInhibitionMode; @XmlElement(name = "lightInhibitionValue") private Integer lightInhibitionValue; @XmlElement(name = "hue") private Integer hue; @XmlElement(name = "chroma") private Integer chroma; @XmlElement(name = "sharpness") private Integer sharpness; @XmlElement(name = "bright") private Integer bright; @XmlElement(name = "contrast") private Integer contrast; @XmlElement(name = "saturation") private Integer saturation; @XmlElement(name = "corridorMode") private Integer corridorMode; @XmlElement(name = "defogEnable") private Integer defogEnable; @XmlElement(name = "defogLevel") private Integer defogLevel; @XmlElement(name = "opticalDefog") private Integer opticalDefog; @XmlElement(name = "focusMode") private Integer focusMode; @XmlElement(name = "focusVal") private Integer focusVal; @XmlElement(name = "focusSensitive") private Integer focusSensitive; @XmlElement(name = "focusSpeed") private Integer focusSpeed; @XmlElement(name = "cameraLensInit") private Integer cameraLensInit; // 显式无参构造方法(JAXB 必需) public CameraParameters() { } /** * 时间节点内部类(scheduleStart/scheduleEnd 子节点) */ @Data @XmlAccessorType(XmlAccessType.FIELD) public static class TimeNode implements Serializable { @XmlElement(name = "hour") private Integer hour; @XmlElement(name = "minute") private Integer minute; @XmlElement(name = "second") private Integer second; // 显式无参构造方法(JAXB 必需) public TimeNode() { } public TimeNode(Integer hour, Integer minute, Integer second) { this.hour = hour; this.minute = minute; this.second = second; } } }