/// <summary> /// Processes signal and returns a sequence of strings to print on screen /// </summary> /// <param name="signal"></param> /// <param name="unit"></param> /// <returns></returns> private IEnumerable <string> ProcessSignal(IPhasorDomainSignal signal, string unit) { // For each phasor in the signal foreach (var phasor in signal.Phasors) { // Start with description of the source var infoString = "Source: \"" + phasor.Key.Label.Label + "\" produces "; // Then, depending on the category switch (phasor.Key.FrequencyCategory) { case FrequencyCategory.DC: { infoString += SIHelpers.ToAltSIStringExcludingSmallPrefixes(phasor.Value, unit, _RoundToDigit) + " DC"; } break; case FrequencyCategory.AC: { infoString += SIHelpers.ToAltSIStringExcludingSmallPrefixes(phasor.Value, unit, _RoundToDigit) + " AC"; } break; } yield return(infoString); } }
/// <summary> /// Copies internal state of <paramref name="obj"/> to this instance /// </summary> /// <param name="obj"></param> /// <exception cref="ArgumentNullException"></exception> public void Copy(IPhasorDomainSignal obj) { if (obj == null) { throw new ArgumentNullException(nameof(obj)); } // Clear the phasors and add obj's elements to it _Phasors.Clear(); obj.Phasors.ForEach((x) => AddPhasorHelper(x.Key, x.Value)); }
/// <summary> /// Copy constructor /// </summary> /// <exception cref="ArgumentNullException"></exception> public PhasorDomainSignalMutable(IPhasorDomainSignal signal) : base(signal) { }
/// <summary> /// Default constructor /// </summary> /// <param name="signal"></param> /// <exception cref="ArgumentNullException"></exception> public PhasorDomainSignalViewModel(IPhasorDomainSignal signal, string unit) { DisplayText = ProcessSignal( signal ?? throw new ArgumentNullException(nameof(signal)), unit ?? throw new ArgumentNullException(nameof(unit))); }
/// <summary> /// Default constructor /// </summary> /// <param name="Signal">Signal being interpreted</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="Signal"/> is null</exception> public PhasorDomainSignalInterpreter(IPhasorDomainSignal Signal) { _Signal = Signal ?? throw new ArgumentNullException(nameof(Signal)); }
/// <summary> /// Copy constructor /// </summary> /// <exception cref="ArgumentNullException"></exception> public PhasorDomainSignal(IPhasorDomainSignal signal) : this() { Copy(signal ?? throw new ArgumentNullException(nameof(signal))); }