using System.Xml.Serialization;

namespace QRCT_modem_RF_Debug_tool;

public class WCN36xx_TxScenario : IUserDefinedCompareEqual
{
	[XmlElement]
	public string scenarioDesc;

	[XmlElement]
	public uint chan;

	[XmlElement]
	public string mode;

	[XmlElement]
	public string rate;

	[XmlElement]
	public string power_ctrl_mode;

	[XmlElement]
	public int rfGain;

	[XmlElement]
	public int DigGain;

	[XmlElement]
	public double TargetPower;

	public WCN36xx_TxScenario()
	{
		scenarioDesc = null;
		chan = 0u;
		mode = null;
		rate = null;
		power_ctrl_mode = null;
		rfGain = -999;
		DigGain = -999;
		TargetPower = -999.9;
	}

	public bool IsEqual(object comparedObj)
	{
		if (comparedObj != null)
		{
			WCN36xx_TxScenario wCN36xx_TxScenario = comparedObj as WCN36xx_TxScenario;
			if (scenarioDesc == wCN36xx_TxScenario.scenarioDesc && chan == wCN36xx_TxScenario.chan && mode == wCN36xx_TxScenario.mode && rate == wCN36xx_TxScenario.rate && power_ctrl_mode == wCN36xx_TxScenario.power_ctrl_mode && rfGain == wCN36xx_TxScenario.rfGain && DigGain == wCN36xx_TxScenario.DigGain && TargetPower == wCN36xx_TxScenario.TargetPower)
			{
				return true;
			}
		}
		return false;
	}

	public WCN36xx_TxScenario DeepCopy()
	{
		WCN36xx_TxScenario wCN36xx_TxScenario = new WCN36xx_TxScenario();
		wCN36xx_TxScenario.scenarioDesc = scenarioDesc;
		wCN36xx_TxScenario.chan = chan;
		wCN36xx_TxScenario.mode = mode;
		wCN36xx_TxScenario.rate = rate;
		wCN36xx_TxScenario.power_ctrl_mode = power_ctrl_mode;
		wCN36xx_TxScenario.rfGain = rfGain;
		wCN36xx_TxScenario.DigGain = DigGain;
		wCN36xx_TxScenario.TargetPower = TargetPower;
		return wCN36xx_TxScenario;
	}

	public override string ToString()
	{
		return scenarioDesc;
	}
}
