protected override void SetSignals(PCIE1730pars _pars0, PCIE1730pars _pars1) { Type tp = GetType(); foreach (FieldInfo fi in tp.GetFields(BindingFlags.Public | BindingFlags.Instance)) { if (fi.FieldType != typeof(Signal)) { return; } DNameAttribute dn = Attribute.GetCustomAttribute(fi, typeof(DNameAttribute)) as DNameAttribute; if (dn == null) { throw new Exception("Сигнал не имеет описания: " + fi.Name); } SignalInputAttribute si = Attribute.GetCustomAttribute(fi, typeof(SignalInputAttribute)) as SignalInputAttribute; if (si == null) { throw new Exception("Сигнал не имеет направления: " + fi.Name); } int iboard = -1; SignalPars p = GetPars(_pars0 == null ? null : _pars0.Signals, _pars1 == null ? null : _pars1.Signals, dn.Name, ref iboard); if (p == null) { throw new Exception("Сигнал не найден и его негде создать: " + fi.Name + ": " + dn.Name); } p.Input = si.Input; Signal s = new Signal(iboard, p, boards[iboard].DigitalOffset, SyncObj, WriteSignal); if (!PCSide) { s.input = !s.input; } Add(s); s.hint = fi.Name; fi.SetValue(this, s); } ClearSignalPars(_pars0 == null ? null : _pars0.Signals, _pars1 == null ? null : _pars1.Signals); }
void InitSignals(PCIE1730pars _pars) { Type tp = GetType(); foreach (FieldInfo fi in tp.GetFields(BindingFlags.Public | BindingFlags.Instance)) { if (fi.FieldType != typeof(Signal)) { return; } DNameAttribute dn = Attribute.GetCustomAttribute(fi, typeof(DNameAttribute)) as DNameAttribute; if (dn == null) { throw new Exception("Сигнал не имеет описания: " + fi.Name); } Signal s = this[dn.Name]; if (s == null) { throw new Exception("Сигнал не найден: " + fi.Name + ": " + dn.Name); } s.hint = fi.Name; fi.SetValue(this, s); } }