using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata.Ecma335;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;

namespace Test;


internal class PM
{
    public Guid UID { get; set; }
    public DateTime Time { get; set; }

    public DataCollection<float> OnTime { get; set; }
    public DataCollection<float> Pressure { get; set; }
    public DataCollection<float> Mfcs { get; set; }
    public DataCollection<bool> IoSensor { get; set; }
    public DataCollection<PairValue<bool>> IoValve { get; set; }
    public DataCollection<Heater> IoHeater { get; set; }

    public HighTemperatureHeater HighTemperatureHeater { get; set; }
    public Lid Lid { get; set; }
    public MainPump MainPump { get; set; }
    public Match Match { get; set; }
    public PendulumValve pendulumValve { get; set; }

    public PV PV { get; set; }
    public RF RF { get; set; }
    public RFBox RFBox { get; set; }
    public SlitDoor SlitDoor { get; set; }
    public TurboPump TurboPump { get; set; }
}

internal class HighTemperatureHeater
{
    public bool IsOn { get; set; }
    public bool HeaterDriverAlarm { get; set; }
    public float InnerCurrent { get; set; }
    public float InnerPower { get; set; }
    public float InnerResistance { get; set; }
    public float InnerVoltage { get; set; }
    public float MaxPower { get; set; }
    public float MinPower { get; set; }
    public float OuterCurrent { get; set; }
    public float OuterPower { get; set; }
    public float OuterResistance { get; set; }
    public float OuterVoltage { get; set; }
    public float Posi_Mm { get; set; }
    public float Position { get; set; }
    public float Power_Output { get; set; }
    public float PurgeN2Flow { get; set; }
    public float Ratio { get; set; }
    public float ShaftTCTemp { get; set; }
    public float SourceTCTemp { get; set; }
    public float Speed { get; set; }
    public float Temperature { get; set; }
    public float TemperatureSetPoint { get; set; }
    public float TM_Temp { get; set; }
}

internal class Heater
{
    public PairValue<float> ControlTc { get; set; }
    public PairValue<bool> IsPowerOn { get; set; }
}

internal class Lid
{
    public bool IsClosed { get; set; }
}

internal class MainPump
{
    public bool IsError { get; set; }
    public bool IsRunning { get; set; }
}

internal class Match
{
    public float C1 { get; set; }
    public float C2 { get; set; }
    public float DCBias { get; set; }
    public float Vpp { get; set; }
}

internal class PendulumValve
{
    public bool IsOpen { get; set; }
    public PairValue<float> Position { get; set; }
    public PairValue<float> Pressure { get; set; }
}

internal class PV
{
    public float ForwardPower { get; set; }
    public float GetPVPosition { get; set; }

    public Dictionary<string, float> Pressure { get; set; }
    public Dictionary<string, float> Flow { get; set; }
}

internal class RF
{
    public float ForwardPower { get; set; }
    public float Frequency { get; set; }
    public bool IsPowerOn { get; set; }
    public float PowerSetPoint { get; set; }
    public float PulsingDutyCycle { get; set; }
    public float PulsingFrequency { get; set; }
    public float ReflectPower { get; set; }
}

internal class RFBox
{
    public float C1 { get; set; }
    public float C2 { get; set; }
    public float DCBias { get; set; }
    public float Vpp { get; set; }

}

internal class SlitDoor
{
    public bool IsClosed { get; set; }
}

internal class TurboPump
{
    public float Temperature { get; set; }
    public bool IsTurboPumpAtSpeed { get; set; }
}