Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }