// TODO Add documentation, clean up, remove commented out code, etc.
    public static float WorkOutAtResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata)
    {
        float Resistanc = 0;

        if (Indata == null)
        {
            return(Resistanc);
        }

        bool goingToExists    = ResistanceSources.ResistanceGoingTo.TryGetValue(Indata, out VIRResistances goingTo);
        bool comingFromExists = ResistanceSources.ResistanceComingFrom.TryGetValue(Indata, out VIRResistances comingFrom);

        if (goingToExists && comingFromExists)
        {
            HashSet <ResistanceWrap> ResistanceSour = new HashSet <ResistanceWrap>(comingFrom.ResistanceSources);

            //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources);

            //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            //ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            //ResistanceSour.ExceptWith(ResistanceSourtoreove);

            float Toadd    = 0;
            float ToRemove = 0;

            foreach (var Resistance in ResistanceSour)
            {
                if (goingTo.ResistanceSources.Contains(Resistance))
                {
                    Toadd = 1 / Resistance.Resistance();
                }

                //else {
                //	ToRemove = 1 / Resistance.Resistance();
                //}
            }

            if (Toadd != 0)
            {
                Toadd = 1 / Toadd;
            }

            Resistanc = Toadd - ToRemove;
        }
        else
        {
            if (comingFromExists)
            {
                Resistanc = comingFrom.Resistance();
            }
            else if (goingToExists)
            {
                Resistanc = goingTo.Resistance();
            }
        }

        return(Resistanc);
    }
Exemplo n.º 2
0
    // TODO Add documentation, clean up, remove commented out code, etc.
    public static float WorkOutAtResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata)
    {
        float Resistanc = 0;

        if (Indata != null && ResistanceSources.ResistanceGoingTo.ContainsKey(Indata) &&
            ResistanceSources.ResistanceComingFrom.ContainsKey(Indata))
        {
            HashSet <ResistanceWrap> ResistanceSour =
                new HashSet <ResistanceWrap>(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources);

            //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources);

            //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            //ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            //ResistanceSour.ExceptWith(ResistanceSourtoreove);

            float Toadd    = 0;
            float ToRemove = 0;

            foreach (var Resistance in ResistanceSour)
            {
                if (ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources.Contains(Resistance))
                {
                    Toadd = 1 / Resistance.Resistance();
                }

                //else {
                //	ToRemove = 1 / Resistance.Resistance();
                //}
            }

            if (Toadd != 0)
            {
                Toadd = 1 / Toadd;
            }

            Resistanc = Toadd - ToRemove;
        }
        else
        {
            if (ResistanceSources.ResistanceComingFrom.ContainsKey(Indata))
            {
                Resistanc = ResistanceSources.ResistanceComingFrom[Indata].Resistance();
            }
            else if (ResistanceSources.ResistanceGoingTo.ContainsKey(Indata))
            {
                Resistanc = ResistanceSources.ResistanceGoingTo[Indata].Resistance();
            }
        }

        //Logger.Log((1 / ResistanceXAll)+ "< Return");
        return(Resistanc);
    }
 public static void FlushResistanceAndUp(IntrinsicElectronicData Object, ElectricalOIinheritance SourceInstance = null)
 {
     if (SourceInstance == null)
     {
         bool pass = false;
         foreach (var Supply in Object.Data.SupplyDependent)
         {
             if (Supply.Value.ResistanceComingFrom.Count > 0)
             {
                 pass = true;
                 break;
             }
         }
         if (pass)
         {
             foreach (var Supply in Object.Data.SupplyDependent)
             {
                 Pool(Supply.Value.ResistanceComingFrom);
                 Pool(Supply.Value.ResistanceGoingTo);
                 Pool(Supply.Value.CurrentGoingTo);
                 Pool(Supply.Value.CurrentComingFrom);
                 Supply.Value.SourceVoltage = 0;
             }
             foreach (IntrinsicElectronicData JumpTo in Object.Data.connections)
             {
                 JumpTo.FlushResistanceAndUp();
             }
             Object.Data.CurrentInWire = 0;
             Object.Data.ActualVoltage = 0;
         }
     }
     else
     {
         ElectronicSupplyData supplyDep = Object.Data.SupplyDependent[SourceInstance];
         if (supplyDep.ResistanceComingFrom.Count > 0 || supplyDep.ResistanceGoingTo.Count > 0)
         {
             Pool(supplyDep.ResistanceComingFrom);
             Pool(supplyDep.ResistanceGoingTo);
             foreach (IntrinsicElectronicData JumpTo in Object.Data.connections)
             {
                 JumpTo.FlushResistanceAndUp(SourceInstance);
             }
             Pool(supplyDep.CurrentGoingTo);
             Pool(supplyDep.CurrentComingFrom);
             supplyDep.SourceVoltage   = 0;
             Object.Data.CurrentInWire = new float();
             Object.Data.ActualVoltage = new float();
         }
     }
 }
    public static int SplitNumber(ElectronicSupplyData ResistanceSources, ResistanceWrap InitialWrap)
    {
        int Total = 0;

        foreach (var ResistanceSource in ResistanceSources.ResistanceGoingTo)
        {
            foreach (var Resistance in ResistanceSource.Value.ResistanceSources)
            {
                if (Resistance != InitialWrap && InitialWrap.resistance == Resistance.resistance)
                {
                    Total = Total + 1;
                }
            }
        }

        return(Total);
    }
    // TODO Add documentation, clean up, remove commented out code, fix spelling, etc.
    public static float WorkOutResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata)
    {
        //Worked out per source
        float Resistanc = 0;

        bool goingToExists    = ResistanceSources.ResistanceGoingTo.TryGetValue(Indata, out VIRResistances goingTo);
        bool comingFromExists = ResistanceSources.ResistanceComingFrom.TryGetValue(Indata, out VIRResistances comingFrom);

        if (goingToExists && comingFromExists)
        {
            //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap> (ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources);

            ////HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            ////ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            ////ResistanceSour.ExceptWith(ResistanceSourtoreove);

            //float Toadd = 0;
            //float ToRemove = 0;

            //foreach (var Resistance in ResistanceSour) {
            //	if (ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources.Contains(Resistance))
            //	{
            //		Toadd = 1 / Resistance.Resistance();
            //	}
            //	else {
            //		ToRemove = 1 / Resistance.Resistance();
            //	}
            //}
            //if (Toadd != 0) {
            //	Toadd = 1 / Toadd;
            //}


            //if (ToRemove != 0)
            //{
            //	ToRemove= 1 / ToRemove;
            //}


            //Resistanc = Toadd - ToRemove;

            //if (Resistancxall != 0)
            //{
            //	Resistanc = (1 / Resistancxall);
            //}
            //else {
            //	Resistanc = 0;
            //}
            //ResistanceSources
            Resistanc = goingTo.Resistance();

            Resistanc = Resistanc > comingFrom.Resistance() ?
                        Resistanc - comingFrom.Resistance() : comingFrom.Resistance() - Resistanc;
        }
        else if (goingToExists)
        {
            Resistanc = goingTo.Resistance();
        }
        else if (comingFromExists)
        {
            Resistanc = comingFrom.Resistance();
        }
        //Logger.Log((1 / ResistanceXAll)+ "< Return");
        return(Resistanc);
    }
Exemplo n.º 6
0
    // TODO Add documentation, clean up, remove commented out code, fix spelling, etc.
    public static float WorkOutResistance(ElectronicSupplyData ResistanceSources, IntrinsicElectronicData Indata)
    {
        //Worked out per source
        float Resistanc = 0;

        if (ResistanceSources.ResistanceGoingTo.ContainsKey(Indata) &&
            ResistanceSources.ResistanceComingFrom.ContainsKey(Indata))
        {
            //HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap> (ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            //ResistanceSour.UnionWith(ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources);

            ////HashSet<ResistanceWrap> ResistanceSour = new HashSet<ResistanceWrap>(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            ////ResistanceSourtoreove.UnionWith(ResistanceSources.ResistanceGoingTo[Indata].ResistanceSources);

            ////ResistanceSour.ExceptWith(ResistanceSourtoreove);

            //float Toadd = 0;
            //float ToRemove = 0;

            //foreach (var Resistance in ResistanceSour) {
            //	if (ResistanceSources.ResistanceComingFrom[Indata].ResistanceSources.Contains(Resistance))
            //	{
            //		Toadd = 1 / Resistance.Resistance();
            //	}
            //	else {
            //		ToRemove = 1 / Resistance.Resistance();
            //	}
            //}
            //if (Toadd != 0) {
            //	Toadd = 1 / Toadd;
            //}


            //if (ToRemove != 0)
            //{
            //	ToRemove= 1 / ToRemove;
            //}


            //Resistanc = Toadd - ToRemove;

            //if (Resistancxall != 0)
            //{
            //	Resistanc = (1 / Resistancxall);
            //}
            //else {
            //	Resistanc = 0;
            //}
            //ResistanceSources
            Resistanc = ResistanceSources.ResistanceGoingTo[Indata].Resistance();
            if (Resistanc > ResistanceSources.ResistanceComingFrom[Indata].Resistance())
            {
                Resistanc = Resistanc - ResistanceSources.ResistanceComingFrom[Indata].Resistance();
            }
            else
            {
                Resistanc = ResistanceSources.ResistanceComingFrom[Indata].Resistance() - Resistanc;
            }
        }
        else
        {
            if (ResistanceSources.ResistanceGoingTo.ContainsKey(Indata))
            {
                Resistanc = ResistanceSources.ResistanceGoingTo[Indata].Resistance();
            }
            else if (ResistanceSources.ResistanceComingFrom.ContainsKey(Indata))
            {
                Resistanc = ResistanceSources.ResistanceComingFrom[Indata].Resistance();
            }
            else
            {
                Resistanc = 0;
            }
        }

        //Logger.Log((1 / ResistanceXAll)+ "< Return");
        return(Resistanc);
    }