public override Task <ITimeSeriesValue[]> Run(IFrame frame, IFrame[] previousFrames, IFrame[] futureFrames) { AdaptValue real = new AdaptValue("Real", Complex.Conjugate(GetComplex(frame)).Real, frame.Timestamp); AdaptValue imaginary = new AdaptValue("Imaginary", Complex.Conjugate(GetComplex(frame)).Imaginary, frame.Timestamp); return(Task.FromResult <ITimeSeriesValue[]>(new AdaptValue[] { real, imaginary })); }
public override Task <ITimeSeriesValue[]> Run(IFrame frame, IFrame[] previousFrames, IFrame[] futureFrames) { Complex S = GetComplex(frame); AdaptValue apparent = new AdaptValue("Apparent Power", S.Magnitude, frame.Timestamp); AdaptValue active = new AdaptValue("Active Power", S.Real, frame.Timestamp); AdaptValue reactive = new AdaptValue("Reactive Power", S.Imaginary, frame.Timestamp); return(Task.FromResult <ITimeSeriesValue[]>(new AdaptValue[] { apparent, active, reactive })); }