using System.Xml.Serialization;

namespace Qualcomm_ModemRFA;

public class TxPowerAction
{
	[XmlAttribute]
	public string Description;

	[XmlElement]
	public Waveform LTE_waveform;

	[XmlElement]
	public int PA_Quiescent_Current;

	[XmlElement]
	public int IQGain;

	[XmlElement]
	public int EnvGain;

	[XmlElement]
	public int Min_Start_Pwr;

	[XmlElement]
	public int Max_Expected_Pwr;

	[XmlElement("modeID")]
	public int modeID { get; set; }

	[XmlElement("RFmode_ID")]
	public int RFmode_ID { get; set; }

	[XmlElement("Ref_Chan")]
	public int Ref_Chan { get; set; }

	[XmlElement("Device")]
	public int Device { get; set; }

	[XmlElement("PA_State")]
	public int PA_State { get; set; }

	[XmlElement("Bias")]
	public int Bias { get; set; }

	[XmlElement("RGI")]
	public int RGI { get; set; }

	[XmlElement("UpperLim")]
	public string UpperLim { get; set; }

	[XmlElement("LowerLim")]
	public string LowerLim { get; set; }

	public string description
	{
		get
		{
			return Description;
		}
		set
		{
			Description = value;
		}
	}

	public TxPowerAction DeepCopy()
	{
		TxPowerAction txPowerAction = new TxPowerAction();
		txPowerAction.Description = Description;
		txPowerAction.modeID = modeID;
		txPowerAction.RFmode_ID = RFmode_ID;
		txPowerAction.Ref_Chan = Ref_Chan;
		txPowerAction.Device = Device;
		txPowerAction.PA_State = PA_State;
		txPowerAction.Bias = Bias;
		txPowerAction.RGI = RGI;
		txPowerAction.UpperLim = UpperLim;
		txPowerAction.LowerLim = LowerLim;
		txPowerAction.LTE_waveform = LTE_waveform.DeepCopy();
		txPowerAction.PA_Quiescent_Current = PA_Quiescent_Current;
		txPowerAction.IQGain = IQGain;
		txPowerAction.EnvGain = EnvGain;
		txPowerAction.Min_Start_Pwr = Min_Start_Pwr;
		txPowerAction.Max_Expected_Pwr = Max_Expected_Pwr;
		return txPowerAction;
	}
}
