//
// 此文件是由 JavaTM Architecture for XML Binding (JAXB) 引用实现 v2.3.0 生成的
// 请访问 <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a> 
// 在重新编译源模式时, 对此文件的所有修改都将丢失。
// 生成时间: 2026.03.02 时间 03:10:34 PM CST 
//


package com.njcn.gather.icd.mapping.infrastructure.parser.generated;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;


/**
 * <p>tSampledValueControl complex type的 Java 类。
 * 
 * <p>以下模式片段指定包含在此类中的预期内容。
 * 
 * <pre>
 * &lt;complexType name="tSampledValueControl"&gt;
 *   &lt;complexContent&gt;
 *     &lt;extension base="{http://www.iec.ch/61850/2003/SCL}tControlWithIEDName"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="SmvOpts"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                 &lt;attGroup ref="{http://www.iec.ch/61850/2003/SCL}agSmvOpts"/&gt;
 *               &lt;/restriction&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="Protocol" type="{http://www.iec.ch/61850/2003/SCL}tProtocol" minOccurs="0"/&gt;
 *       &lt;/sequence&gt;
 *       &lt;attribute name="smvID" use="required" type="{http://www.iec.ch/61850/2003/SCL}tMessageID" /&gt;
 *       &lt;attribute name="multicast" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /&gt;
 *       &lt;attribute name="smpRate" use="required" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" /&gt;
 *       &lt;attribute name="nofASDU" use="required" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" /&gt;
 *       &lt;attribute name="smpMod" type="{http://www.iec.ch/61850/2003/SCL}tSmpMod" default="SmpPerPeriod" /&gt;
 *       &lt;attribute name="securityEnable" type="{http://www.iec.ch/61850/2003/SCL}tPredefinedTypeOfSecurityEnum" default="None" /&gt;
 *       &lt;anyAttribute processContents='lax' namespace='##other'/&gt;
 *     &lt;/extension&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "tSampledValueControl", propOrder = {
    "smvOpts",
    "protocol"
})
public class TSampledValueControl
    extends TControlWithIEDName
{

    @XmlElement(name = "SmvOpts", required = true)
    protected TSampledValueControl.SmvOpts smvOpts;
    @XmlElement(name = "Protocol")
    protected TProtocol protocol;
    @XmlAttribute(name = "smvID", required = true)
    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
    protected String smvID;
    @XmlAttribute(name = "multicast")
    protected Boolean multicast;
    @XmlAttribute(name = "smpRate", required = true)
    @XmlSchemaType(name = "unsignedInt")
    protected long smpRate;
    @XmlAttribute(name = "nofASDU", required = true)
    @XmlSchemaType(name = "unsignedInt")
    protected long nofASDU;
    @XmlAttribute(name = "smpMod")
    protected TSmpMod smpMod;
    @XmlAttribute(name = "securityEnable")
    protected TPredefinedTypeOfSecurityEnum securityEnable;

    /**
     * 获取smvOpts属性的值。
     * 
     * @return
     *     possible object is
     *     {@link TSampledValueControl.SmvOpts }
     *     
     */
    public TSampledValueControl.SmvOpts getSmvOpts() {
        return smvOpts;
    }

    /**
     * 设置smvOpts属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link TSampledValueControl.SmvOpts }
     *     
     */
    public void setSmvOpts(TSampledValueControl.SmvOpts value) {
        this.smvOpts = value;
    }

    /**
     * 获取protocol属性的值。
     * 
     * @return
     *     possible object is
     *     {@link TProtocol }
     *     
     */
    public TProtocol getProtocol() {
        return protocol;
    }

    /**
     * 设置protocol属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link TProtocol }
     *     
     */
    public void setProtocol(TProtocol value) {
        this.protocol = value;
    }

    /**
     * 获取smvID属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSmvID() {
        return smvID;
    }

    /**
     * 设置smvID属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSmvID(String value) {
        this.smvID = value;
    }

    /**
     * 获取multicast属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public boolean isMulticast() {
        if (multicast == null) {
            return true;
        } else {
            return multicast;
        }
    }

    /**
     * 设置multicast属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setMulticast(Boolean value) {
        this.multicast = value;
    }

    /**
     * 获取smpRate属性的值。
     * 
     */
    public long getSmpRate() {
        return smpRate;
    }

    /**
     * 设置smpRate属性的值。
     * 
     */
    public void setSmpRate(long value) {
        this.smpRate = value;
    }

    /**
     * 获取nofASDU属性的值。
     * 
     */
    public long getNofASDU() {
        return nofASDU;
    }

    /**
     * 设置nofASDU属性的值。
     * 
     */
    public void setNofASDU(long value) {
        this.nofASDU = value;
    }

    /**
     * 获取smpMod属性的值。
     * 
     * @return
     *     possible object is
     *     {@link TSmpMod }
     *     
     */
    public TSmpMod getSmpMod() {
        if (smpMod == null) {
            return TSmpMod.SMP_PER_PERIOD;
        } else {
            return smpMod;
        }
    }

    /**
     * 设置smpMod属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link TSmpMod }
     *     
     */
    public void setSmpMod(TSmpMod value) {
        this.smpMod = value;
    }

    /**
     * 获取securityEnable属性的值。
     * 
     * @return
     *     possible object is
     *     {@link TPredefinedTypeOfSecurityEnum }
     *     
     */
    public TPredefinedTypeOfSecurityEnum getSecurityEnable() {
        if (securityEnable == null) {
            return TPredefinedTypeOfSecurityEnum.NONE;
        } else {
            return securityEnable;
        }
    }

    /**
     * 设置securityEnable属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link TPredefinedTypeOfSecurityEnum }
     *     
     */
    public void setSecurityEnable(TPredefinedTypeOfSecurityEnum value) {
        this.securityEnable = value;
    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;attGroup ref="{http://www.iec.ch/61850/2003/SCL}agSmvOpts"/&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "")
    public static class SmvOpts {

        @XmlAttribute(name = "refreshTime")
        protected Boolean refreshTime;
        @XmlAttribute(name = "sampleSynchronized")
        protected Boolean sampleSynchronized;
        @XmlAttribute(name = "sampleRate")
        protected Boolean sampleRate;
        @XmlAttribute(name = "dataSet")
        protected Boolean dataSet;
        @XmlAttribute(name = "security")
        protected Boolean security;
        @XmlAttribute(name = "timestamp")
        protected Boolean timestamp;
        @XmlAttribute(name = "synchSourceId")
        protected Boolean synchSourceId;
        @XmlAttribute(name = "sampleMode")
        protected Boolean sampleMode;

        /**
         * 获取refreshTime属性的值。
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isRefreshTime() {
            if (refreshTime == null) {
                return false;
            } else {
                return refreshTime;
            }
        }

        /**
         * 设置refreshTime属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setRefreshTime(Boolean value) {
            this.refreshTime = value;
        }

        /**
         * 获取sampleSynchronized属性的值。
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isSampleSynchronized() {
            if (sampleSynchronized == null) {
                return true;
            } else {
                return sampleSynchronized;
            }
        }

        /**
         * 设置sampleSynchronized属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setSampleSynchronized(Boolean value) {
            this.sampleSynchronized = value;
        }

        /**
         * 获取sampleRate属性的值。
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isSampleRate() {
            if (sampleRate == null) {
                return false;
            } else {
                return sampleRate;
            }
        }

        /**
         * 设置sampleRate属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setSampleRate(Boolean value) {
            this.sampleRate = value;
        }

        /**
         * 获取dataSet属性的值。
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isDataSet() {
            if (dataSet == null) {
                return false;
            } else {
                return dataSet;
            }
        }

        /**
         * 设置dataSet属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setDataSet(Boolean value) {
            this.dataSet = value;
        }

        /**
         * 获取security属性的值。
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isSecurity() {
            if (security == null) {
                return false;
            } else {
                return security;
            }
        }

        /**
         * 设置security属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setSecurity(Boolean value) {
            this.security = value;
        }

        /**
         * 获取timestamp属性的值。
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isTimestamp() {
            if (timestamp == null) {
                return false;
            } else {
                return timestamp;
            }
        }

        /**
         * 设置timestamp属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setTimestamp(Boolean value) {
            this.timestamp = value;
        }

        /**
         * 获取synchSourceId属性的值。
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isSynchSourceId() {
            if (synchSourceId == null) {
                return false;
            } else {
                return synchSourceId;
            }
        }

        /**
         * 设置synchSourceId属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setSynchSourceId(Boolean value) {
            this.synchSourceId = value;
        }

        /**
         * 获取sampleMode属性的值。
         * 
         * @return
         *     possible object is
         *     {@link Boolean }
         *     
         */
        public boolean isSampleMode() {
            if (sampleMode == null) {
                return false;
            } else {
                return sampleMode;
            }
        }

        /**
         * 设置sampleMode属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link Boolean }
         *     
         */
        public void setSampleMode(Boolean value) {
            this.sampleMode = value;
        }

    }

}
