Example #1
0
        private Channel MakeParsedDigital(CommaSeparatedEventReport report, int channelIndex)
        {
            Channel        channel        = new Channel();
            Series         series         = new Series();
            Channel <bool> digitalChannel = report.AnalogSection.DigitalChannels[channelIndex];

            channel.Name                           = digitalChannel.Name;
            channel.HarmonicGroup                  = 0;
            channel.MeasurementType                = new MeasurementType();
            channel.MeasurementType.Name           = "Digital";
            channel.MeasurementCharacteristic      = new MeasurementCharacteristic();
            channel.MeasurementCharacteristic.Name = "Instantaneous";
            channel.Phase                          = new Phase();
            channel.Phase.Name                     = "None";

            series.Channel         = channel;
            series.SeriesType      = new SeriesType();
            series.SeriesType.Name = "Values";
            series.SourceIndexes   = channelIndex.ToString();

            channel.MeasurementType.Description           = channel.MeasurementType.Name;
            channel.MeasurementCharacteristic.Description = channel.MeasurementCharacteristic.Name;
            channel.Phase.Description     = "No phase";
            series.SeriesType.Description = series.SeriesType.Name;

            return(channel);
        }
Example #2
0
        // Shamelessly copy pasted from the XDAWaveFormDataParser
        // Thanks other Stephen
        private ParsedChannel MakeParsedChannel(CommaSeparatedEventReport report, Channel <double> channel)
        {
            List <DateTime> timeSamples = report.AnalogSection.TimeChannel.Samples.ToList();

            List <object> xValues = timeSamples
                                    .Select(time => time - timeSamples[0])
                                    .Select(timeSpan => timeSpan.TotalSeconds)
                                    .Cast <object>()
                                    .ToList();

            ParsedChannel parsedChannel = new ParsedChannel()
            {
                Name       = string.Format("({0}) {1}", report.Command, channel.Name),
                TimeValues = timeSamples,
                XValues    = xValues,
                YValues    = channel.Samples.Cast <object>().ToList()
            };

            return(parsedChannel);
        }
Example #3
0
        private Channel MakeParsedAnalog(CommaSeparatedEventReport report, int channelIndex)
        {
            const string ChannelWithUnitsPattern = @"(?<Name>\S+)\s*\((?<Units>\S+)\)";

            Channel <double> analogChannel = report.AnalogSection.AnalogChannels[channelIndex];

            Series series = new Series();

            series.Channel         = new Channel();
            series.SeriesType      = new SeriesType();
            series.SeriesType.Name = "Values";
            series.SourceIndexes   = channelIndex.ToString();

            Channel channel = series.Channel;

            channel.Series = new List <Series>()
            {
                series
            };
            channel.MeasurementType           = new MeasurementType();
            channel.MeasurementCharacteristic = new MeasurementCharacteristic()
            {
                Name = "Instantaneous"
            };
            channel.Phase         = new Phase();
            channel.Name          = analogChannel.Name;
            channel.HarmonicGroup = 0;

            Match  regexMatch  = Regex.Match(analogChannel.Name, ChannelWithUnitsPattern);
            string channelName = regexMatch.Success ? regexMatch.Groups["Name"].Value : analogChannel.Name;

            switch (channelName)
            {
            case "VA":
            case "VB":
            case "VC":
            case "VS":
            case "VDC":
            case "Freq":
                channel.MeasurementType.Name = "Voltage";
                break;

            case "IA":
            case "IB":
            case "IC":
            case "IN":
            case "IG":
            case "IR":
                channel.MeasurementType.Name = "Current";
                break;

            default:
                channel.MeasurementType.Name = "Unknown";
                break;
            }

            switch (channelName)
            {
            case "VA":
            case "IA":
            case "Freq":
                channel.Phase.Name        = "AN";
                channel.Phase.Description = "A-phase to neutral";
                break;

            case "VB":
            case "IB":
                channel.Phase.Name        = "BN";
                channel.Phase.Description = "B-phase to neutral";
                break;

            case "VC":
            case "IC":
                channel.Phase.Name        = "CN";
                channel.Phase.Description = "C-phase to neutral";
                break;

            case "IN":
                channel.Phase.Name        = "NG";
                channel.Phase.Description = "Neutral to ground";
                break;

            case "IG":
                channel.Phase.Name        = "Ground";
                channel.Phase.Description = "Ground";
                break;

            case "IR":
                channel.Phase.Name        = "RES";
                channel.Phase.Description = "Residual";
                break;

            default:
            case "VS":
            case "VDC":
                channel.Phase.Name        = "Unknown";
                channel.Phase.Description = "Unknown";
                break;
            }

            channel.MeasurementType.Description           = channel.MeasurementType.Name;
            channel.MeasurementCharacteristic.Description = channel.MeasurementCharacteristic.Name;
            series.SeriesType.Description = series.SeriesType.Name;

            return(channel);
        }
Example #4
0
        private Channel MakeParsedAnalog(CommaSeparatedEventReport report, int channelIndex)
        {
            Channel          channel       = new Channel();
            Series           series        = new Series();
            Channel <double> analogChannel = report.AnalogSection.AnalogChannels[channelIndex];

            channel.Name                           = analogChannel.Name;
            channel.HarmonicGroup                  = 0;
            channel.MeasurementType                = new MeasurementType();
            channel.MeasurementCharacteristic      = new MeasurementCharacteristic();
            channel.MeasurementCharacteristic.Name = "Instantaneous";
            channel.Phase                          = new Phase();

            series.Channel         = channel;
            series.SeriesType      = new SeriesType();
            series.SeriesType.Name = "Values";
            series.SourceIndexes   = channelIndex.ToString();

            switch (analogChannel.Name)
            {
            case "VA":
            case "VB":
            case "VC":
            case "VS":
            case "VDC":
            case "Freq":
                channel.MeasurementType.Name = "Voltage";
                break;

            case "IA":
            case "IB":
            case "IC":
            case "IN":
            case "IG":
            case "IR":
                channel.MeasurementType.Name = "Current";
                break;

            default:
                channel.MeasurementType.Name = "Unknown";
                break;
            }

            switch (analogChannel.Name)
            {
            case "VA":
            case "IA":
            case "Freq":
                channel.Phase.Name        = "AN";
                channel.Phase.Description = "A-phase to neutral";
                break;

            case "VB":
            case "IB":
                channel.Phase.Name        = "BN";
                channel.Phase.Description = "B-phase to neutral";
                break;

            case "VC":
            case "IC":
                channel.Phase.Name        = "CN";
                channel.Phase.Description = "C-phase to neutral";
                break;

            case "IN":
                channel.Phase.Name        = "NG";
                channel.Phase.Description = "Neutral to ground";
                break;

            case "IG":
                channel.Phase.Name        = "Ground";
                channel.Phase.Description = "Ground";
                break;

            case "IR":
                channel.Phase.Name        = "RES";
                channel.Phase.Description = "Residual";
                break;

            default:
            case "VS":
            case "VDC":
                channel.Phase.Name        = "Unknown";
                channel.Phase.Description = "Unknown";
                break;
            }

            channel.MeasurementType.Description           = channel.MeasurementType.Name;
            channel.MeasurementCharacteristic.Description = channel.MeasurementCharacteristic.Name;
            series.SeriesType.Description = series.SeriesType.Name;

            return(channel);
        }