Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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;
        }