public void Input(object sender, SNetTdSignalEventArg e) { if (!this.IsEnalbed) { return; } var ea = e as SNetTdSignalSecSetF8EventArg; if (ea == null) { throw new SNetException("尚未無法處理此類資料: " + e.GetType().FullName); } var key = ea.Time; var list = ea.TSignalSource.GetOrCreate(key.Value); this.TSignalAvg.Set(ea.Time.Value, list.Average()); this.TSignalMax.Set(ea.Time.Value, list.Max()); this.TSignalMin.Set(ea.Time.Value, list.Min()); this.Purge(); this.OnDataChange(ea); ea.InvokeResult = this.disposed ? SNetTdEnumInvokeResult.IsDisposed : SNetTdEnumInvokeResult.None; }
protected void OnDataChange(SNetTdSignalEventArg ea) { if (this.EhDataChange == null) { return; } this.EhDataChange(this, ea); }
public void Input(object sender, SNetTdSignalEventArg e) { if (!this.IsEnalbed) { return; } var ea = e as SNetTdSignalSecF8EventArg; if (ea == null) { throw new SNetException("尚無法處理此類資料: " + e.GetType().FullName); } ea.InvokeResult = this.disposed ? SNetTdEnumInvokeResult.IsDisposed : SNetTdEnumInvokeResult.None; }
/// <summary> /// 基底類別, 自動判定 /// </summary> /// <param name="sender"></param> /// <param name="ea"></param> public void TgInput(object sender, SNetTdSignalEventArg ea) { //父類別進入, 先判斷有沒有支援 var eaSingle = ea as SNetTdSignalSecF8EventArg; if (eaSingle != null) { this.TgInput(sender, eaSingle); return; } var eaSet = ea as SNetTdSignalSecSetF8EventArg; if (eaSet != null) { this.TgInput(sender, eaSet); return; } }
public void Input(object sender, SNetTdSignalEventArg e) { if (!this.IsEnalbed) { return; } var tsSetSecondEa = e as SNetTdSignalSecSetF8EventArg; if (tsSetSecondEa == null) { throw new SNetException("尚未無法處理此類資料: " + e.GetType().FullName); } if (!tsSetSecondEa.PrevTime.HasValue) { return; } if (tsSetSecondEa.Time == tsSetSecondEa.PrevTime.Value) { return; } var t = tsSetSecondEa.PrevTime.Value; //取得時間變更前的時間資料 IList <double> signalData = tsSetSecondEa.TSignalSource.GetOrCreate(t); if (this.FilterArgs.Mode != CtkEnumPassFilterMode.None) { this.PassFilter.SetFilter(this.FilterArgs); signalData = CtkNumUtil.InterpolationCanOneOrZero(signalData, (int)this.FilterArgs.SampleRate); signalData = this.PassFilter.ProcessSamples(signalData); } this.ProcAndPushData(this.TSignal, new SNetTSignalSecF8(t, signalData)); e.InvokeResult = this.disposed ? SNetTdEnumInvokeResult.IsDisposed : SNetTdEnumInvokeResult.None; }