public void ExportFFTToCSV(Stream returnStream, NameValueCollection requestParameters) { int eventId = int.Parse(requestParameters["eventID"]); using (AdoDataConnection connection = new AdoDataConnection("dbOpenXDA")) using (StreamWriter writer = new StreamWriter(returnStream)) { double startTime = requestParameters["startDate"] == null ? 0.0 : double.Parse(requestParameters["startDate"]); int cycles = requestParameters["cycles"] == null ? 0 : int.Parse(requestParameters["cycles"]); Event evt = (new TableOperations <Event>(connection)).QueryRecordWhere("ID = {0}", eventId); Meter meter = new TableOperations <Meter>(connection).QueryRecordWhere("ID = {0}", evt.MeterID); meter.ConnectionFactory = () => new AdoDataConnection("dbOpenXDA"); AnalyticController ctrl = new AnalyticController(); DataGroup dataGroup = OpenSEEController.QueryDataGroup(evt.ID, meter); List <D3Series> harmonics = ctrl.GetFFTLookup(dataGroup, startTime, cycles); // AnalyticController.GetFFTLookup(dataGroup, startTime, cycles); List <string> headers = new List <string>() { "Harmonic" }; headers = headers.Concat(harmonics.Select(item => item.LegendGroup + " " + item.LegendVertical + " " + item.LegendHorizontal)).ToList(); if (headers.Count == 1) { return; } // Write the CSV header to the file writer.WriteLine(string.Join(",", headers)); for (int i = 0; i < harmonics.First().DataPoints.Count(); ++i) { List <string> line = new List <string>() { harmonics.First().DataPoints[i][0].ToString() }; line = line.Concat(harmonics.Select(item => item.DataPoints[i][1].ToString())).ToList(); writer.WriteLine(string.Join(",", line)); } } }
private List <D3Series> QueryAnalyticData(Meter meter, Event evt, string analytic, int order, double Trc, int harmonic) { DataGroup dataGroup = OpenSEEBaseController.QueryDataGroup(evt.ID, meter); VICycleDataGroup viCycleDataGroup = OpenSEEBaseController.QueryVICycleDataGroup(evt.ID, meter); AnalyticController controller = new AnalyticController(); if (analytic == "FirstDerivative") { return(controller.GetFirstDerivativeLookup(dataGroup, viCycleDataGroup)); } if (analytic == "ClippedWaveforms") { return(controller.GetClippedWaveformsLookup(dataGroup)); } if (analytic == "Frequency") { return(controller.GetFrequencyLookup(new VIDataGroup(dataGroup))); } if (analytic == "Impedance") { return(controller.GetImpedanceLookup(viCycleDataGroup)); } if (analytic == "Power") { return(controller.GetPowerLookup(viCycleDataGroup)); } if (analytic == "RemoveCurrent") { return(controller.GetRemoveCurrentLookup(dataGroup)); } if (analytic == "MissingVoltage") { return(controller.GetMissingVoltageLookup(dataGroup)); } if (analytic == "LowPassFilter") { return(controller.GetLowPassFilterLookup(dataGroup, order)); } if (analytic == "HighPassFilter") { return(controller.GetHighPassFilterLookup(dataGroup, order)); } if (analytic == "SymmetricalComponents") { return(controller.GetSymmetricalComponentsLookup(viCycleDataGroup)); } if (analytic == "Unbalance") { return(controller.GetUnbalanceLookup(viCycleDataGroup)); } if (analytic == "Rectifier") { return(controller.GetRectifierLookup(new VIDataGroup(dataGroup), Trc)); } if (analytic == "RapidVoltageChange") { return(controller.GetRapidVoltageChangeLookup(viCycleDataGroup)); } if (analytic == "THD") { return(controller.GetTHDLookup(dataGroup, true)); } if (analytic == "SpecifiedHarmonic") { return(controller.GetSpecifiedHarmonicLookup(dataGroup, harmonic, true)); } if (analytic == "OverlappingWaveform") { return(controller.GetOverlappingWaveformLookup(dataGroup)); } return(new List <D3Series>()); }
void Awake() { s = this; }