void LoadSettings(TypeSize _p) { DefCL dlc = new DefCL(Tp); L_L502Ch lch = dlc.LCh; borders = new double[2]; bordersIn = new double[2]; filterPars = null; filterParsIn = null; Gains = new double[lch.Count]; for (int i_s = 0; i_s < Sensors; i_s++) { Gains[i_s] = lch[i_s].Gain; } borders[0] = dlc.Border1; borders[1] = dlc.Border2; bordersIn[0] = dlc.Border1In; bordersIn[1] = dlc.Border2In; DeadZoneStart = dlc.DeadZoneStart; DeadZoneFinish = dlc.DeadZoneFinish; filterPars = dlc.Filter.Clone(); IsIn = dlc.IsFinterIn; filterParsIn = dlc.FilterIn.Clone(); LenghtStart = dlc.Tails.LenghtStart; LenghtEnd = dlc.Tails.LenghtEnd; MultStart = dlc.Tails.MultStart; MultEnd = dlc.Tails.MultEnd; SampleRate = dlc.L502.FrequencyPerChannel; ZoneSize = ParAll.ST.ZoneSize; WidthMedianFilter = ParAll.ST.Defect.Some.WidthMedianFilter; IsMedianFilter = ParAll.ST.Defect.Some.IsMedianFilter; }
public void SaveSettings(TypeSize _p) { DefCL dcl = new DefCL(Tp); L_L502Ch lch = dcl.LCh; if (Sensors != lch.Count) { throw (new Exception("RDPars.SaveSettings: Не соответствует количество датчиков в текущем типоразмере")); } for (int i_s = 0; i_s < Sensors; i_s++) { lch[i_s].Gain = Gains[i_s]; } dcl.Border1 = borders[0]; dcl.Border2 = borders[1]; dcl.Border1In = bordersIn[0]; dcl.Border2In = bordersIn[1]; dcl.DeadZoneStart = DeadZoneStart; dcl.DeadZoneFinish = DeadZoneFinish; dcl.Filter = filterPars.Clone(); if (filterParsIn != null) { dcl.FilterIn = filterParsIn.Clone(); } dcl.Tails.LenghtStart = LenghtStart; dcl.Tails.LenghtEnd = LenghtEnd; dcl.Tails.MultStart = MultStart; dcl.Tails.MultEnd = MultEnd; dcl.L502.FrequencyPerChannel = SampleRate; ParAll.ST.ZoneSize = ZoneSize; ParAll.ST.Defect.Some.WidthMedianFilter = WidthMedianFilter; ParAll.ST.Defect.Some.IsMedianFilter = IsMedianFilter; }
public void Calibrate(int _sensor, bool[] _mb, double[] _gains) { double level = MSensor[_sensor].GetMaxLevel() * _gains[_sensor]; L_L502Ch L = type == EUnit.Cross ? ParAll.CTS.Cross.L502Chs : ParAll.CTS.Line.L502Chs; for (int i = 0; i < L.Count; i++) { if (!_mb[i]) { continue; } if (i == _sensor) { continue; } _gains[i] = Math.Round(level / MSensor[i].GetMaxLevel(), 2); } CalcClassGain(_gains); }