using Newtonsoft.Json;

namespace EVCB_OCPP.Packet20.DataTypes.EnumTypes
{
    public enum MeasurandEnumType
    {
        /// <summary>
        ///  Instantaneous current flow from EV
        /// </summary>
        [JsonProperty("Current.Export")]
        Current_Export = 1,
        /// <summary>
        ///  Instantaneous current flow to EV
        /// </summary>
        [JsonProperty("Current.Import")]
        Current_Import,
        /// <summary>
        ///  Maximum current offered to EV
        /// </summary>
        [JsonProperty("Current.Offered")]
        Current_Offered,
        /// <summary>
        /// Numerical value read from the "active electrical energy" (Wh or kWh) register of the (most authoritative)
        ///electrical meter measuring energy exported (to the grid).
        /// </summary>
        [JsonProperty("Energy.Active.Export.Register")]
        Energy_Active_Export_Register,
        /// <summary>
        /// Numerical value read from the "active electrical energy" (Wh or kWh) register of the (most authoritative)
        ///electrical meter measuring energy imported (from the grid supply).
        /// </summary>
        [JsonProperty("Energy.Active.Import.Register")]
        Energy_Active_Import_Register,
        /// <summary>
        /// Numerical value read from the "reactive electrical energy" (varh or kvarh) register of the (most authoritative)
        ///electrical meter measuring energy exported (to the grid).
        /// </summary>
        [JsonProperty("Energy.Reactive.Export.Register")]
        Energy_Reactive_Export_Register,
        /// <summary>
        ///  Numerical value read from the "reactive electrical energy" (varh or kvarh) register of the (most authoritative)
        ///electrical meter measuring energy imported (from the grid supply).
        /// </summary>
        [JsonProperty("Energy.Reactive.Import.Register")]
        Energy_Reactive_Import_Register,
        /// <summary>
        /// Absolute amount of "active electrical energy" (Wh or kWh) exported (to the grid) during an associated time
        ///"interval", specified by a Metervalues ReadingContext, and applicable interval duration configuration values
        ///(in seconds) for ClockAlignedDataInterval and TxnMeterValueSampleInterval.
        /// </summary>
        [JsonProperty("Energy.Active.Export.Interval")]
        Energy_Active_Export_Interval,
        /// <summary>
        /// Absolute amount of "active electrical energy" (Wh or kWh) imported (from the grid supply) during an
        /// associated time "interval", specified by a Metervalues ReadingContext, and applicable interval duration
        ///configuration values (in seconds) for ClockAlignedDataInterval and TxnMeterValueSampleInterval.
        /// </summary>
        [JsonProperty("Energy.Active.Import.Interval")]
        Energy_Active_Import_Interval,
        /// <summary>
        ///  Numerical value read from the “net active electrical energy" (Wh or kWh) register.
        /// </summary>
        [JsonProperty("Energy.Active.Net")]
        Energy_Active_Net,
        /// <summary>
        /// Absolute amount of "reactive electrical energy" (varh or kvarh) exported (to the grid) during an associated
        ///time "interval", specified by a Metervalues ReadingContext, and applicable interval duration configuration
        ///values (in seconds) for ClockAlignedDataInterval and TxnMeterValueSampleInterval.
        /// </summary>
        [JsonProperty("Energy.Reactive.Export.Interval")]
        Energy_Reactive_Export_Interval,
        /// <summary>
        ///  Absolute amount of "reactive electrical energy" (varh or kvarh) imported (from the grid supply) during an
        ///associated time "interval", specified by a Metervalues ReadingContext, and applicable interval duration
        ///configuration values (in seconds) for ClockAlignedDataInterval and TxnMeterValueSampleInterval.
        /// </summary>
        [JsonProperty("Energy.Reactive.Import.Interval")]
        Energy_Reactive_Import_Interval,
        /// <summary>
        ///  Numerical value read from the “net reactive electrical energy" (varh or kvarh) register.
        /// </summary>
        [JsonProperty("Energy.Reactive.Net")]
        Energy_Reactive_Net,
        /// <summary>
        ///  Numerical value read from the "apparent electrical energy" (VAh or kVAh) register.
        /// </summary>
        [JsonProperty("Energy.Apparent.Net")]
        Energy_Apparent_Net,
        /// <summary>
        ///  Numerical value read from the "apparent electrical import energy" (VAh or kVAh) register.
        /// </summary>
        [JsonProperty("Energy.Apparent.Import")]
        Energy_Apparent_Import,
        /// <summary>
        /// Numerical value read from the "apparent electrical export energy" (VAh or kVAh) register.
        /// </summary>
        [JsonProperty("Energy.Apparent.Export")]
        Energy_Apparent_Export,
        /// <summary>
        ///  Instantaneous reading of powerline frequency
        /// </summary>
        Frequency,
        /// <summary>
        ///  Instantaneous active power exported by EV. (W or kW)
        /// </summary>
        [JsonProperty("Power.Active.Export")]
        Power_Active_Export,
        /// <summary>
        ///  Instantaneous active power imported by EV. (W or kW)
        /// </summary>
        [JsonProperty("Power.Active.Import")]
        Power_Active_Import,
        /// <summary>
        ///  Instantaneous power factor of total energy flow
        /// </summary>
        [JsonProperty("Power.Factor")]
        Power_Factor,
        /// <summary>
        ///  Maximum power offered to EV
        /// </summary>
        [JsonProperty("Power.Offered")]
        Power_Offered,
        /// <summary>
        /// Instantaneous reactive power exported by EV. (var or kvar)
        /// </summary>
        [JsonProperty("Power.Reactive.Export")]
        Power_Reactive_Export,
        /// <summary>
        ///  Instantaneous reactive power imported by EV. (var or kvar)
        /// </summary>
        [JsonProperty("Power.Reactive.Import")]
        Power_Reactive_Import,
        /// <summary>
        ///  State of charge of charging vehicle in percentage
        /// </summary>
        SoC,
        /// <summary>
        ///  Instantaneous DC or AC RMS supply voltage
        /// </summary>
        Voltage

    }
}
