public AI_Channels(ref AgilentU254x Driver)
        {
            _pulseBit    = new DigitalBit(new DigitalChannel(DigitalChannelsEnum.DIOD, ref Driver), 0);
            _setResetBit = new DigitalBit(new DigitalChannel(DigitalChannelsEnum.DIOD, ref Driver), 1);

            _selector_A0 = new DigitalBit(new DigitalChannel(DigitalChannelsEnum.DIOB, ref Driver), 0);
            _selector_A1 = new DigitalBit(new DigitalChannel(DigitalChannelsEnum.DIOB, ref Driver), 1);

            _channelModeSwitch = new ChannelModeSwitch(_pulseBit, _setResetBit, _selector_A0, _selector_A1);
            _filter            = new Filter(new DigitalChannel(DigitalChannelsEnum.DIOA, ref Driver));

            HOLD_CS = new DigitalBit(new DigitalChannel(DigitalChannelsEnum.DIOC, ref Driver), 2);
            HOLD_CS.Reset();

            _gainAmplifier = new ProgrammableGainAmplifier(new DigitalChannel(DigitalChannelsEnum.DIOC, ref Driver));

            _latch = new AnalogInLatch(
                _selector_A0,
                _selector_A1,
                new DigitalBit(new DigitalChannel(DigitalChannelsEnum.DIOD, ref Driver), 2));

            _channels = new AI_Channel[4]
            {
                new AI_Channel(AnalogInChannelsEnum.AIn1, ref Driver, _channelModeSwitch, _filter, _gainAmplifier, _latch),
                new AI_Channel(AnalogInChannelsEnum.AIn2, ref Driver, _channelModeSwitch, _filter, _gainAmplifier, _latch),
                new AI_Channel(AnalogInChannelsEnum.AIn3, ref Driver, _channelModeSwitch, _filter, _gainAmplifier, _latch),
                new AI_Channel(AnalogInChannelsEnum.AIn4, ref Driver, _channelModeSwitch, _filter, _gainAmplifier, _latch)
            };
        }
 public AnalogInLatch(DigitalBit Selector_ADC_A0,DigitalBit Selector_ADC_A1, DigitalBit LatchPulseBit)
 {
     if ((Selector_ADC_A0 == null) || (Selector_ADC_A1 == null) || (LatchPulseBit == null))
         throw new ArgumentException();
     _Selector_ADC_A0 = Selector_ADC_A0;
     _Selector_ADC_A1 = Selector_ADC_A1;
     _LatchPulseBit = LatchPulseBit;
 }
Example #3
0
        public AO_Channels(ref AgilentU254x Driver)
        {
            LatchEnable = new DigitalBit(new DigitalChannel(DigitalChannelsEnum.DIOD, ref Driver), 3);

            _channels = new AO_Channel[2]
            {
                new AO_Channel(AnalogOutChannelsEnum.AOut1, ref Driver),
                new AO_Channel(AnalogOutChannelsEnum.AOut2, ref Driver)
            };
        }
        public ChannelModeSwitch(DigitalBit PulseBit, DigitalBit SetResetBit, DigitalBit SelectorA0, DigitalBit SelectorA1)
        {
            if ((PulseBit == null) || (SetResetBit == null) && (SelectorA0 == null) || (SelectorA1 == null))
                throw new ArgumentNullException();

            _pulseBit = PulseBit;
            _setResetBit = SetResetBit;

            _SelectorA0 = SelectorA0;
            _SelectorA1 = SelectorA1;
        }
        public DigitalChannel(DigitalChannelsEnum Channel, ref AgilentU254x Driver)
        {
            int width = 0;

            switch (Channel)
            {
            case DigitalChannelsEnum.DIOA:
            {
                _channelName = ChannelNamesEnum.DIOA;
                width        = 8;
            } break;

            case DigitalChannelsEnum.DIOB:
            {
                _channelName = ChannelNamesEnum.DIOB;
                width        = 8;
            } break;

            case DigitalChannelsEnum.DIOC:
            {
                _channelName = ChannelNamesEnum.DIOC;
                width        = 4;
            } break;

            case DigitalChannelsEnum.DIOD:
            {
                _channelName = ChannelNamesEnum.DIOD;
                width        = 4;
            } break;

            default:
                throw new ArgumentException();
            }

            _driver = Driver;

            var initDirection = AgilentU254xDigitalChannelDirectionEnum.AgilentU254xDigitalChannelDirectionOut;

            _digitalChannel           = Driver.Digital.Channels.get_Item(_channelName);
            _digitalChannel.Direction = initDirection;

            //Marshal.ReleaseComObject(initDirection);

            _bitArray = new DigitalBit[width];
            for (int i = 0; i < width; i++)
            {
                _bitArray[i] = new DigitalBit(this, i);
            }
        }
        public AO_Channel(AnalogOutChannelsEnum Channel, ref AgilentU254x Driver)
        {
            switch (Channel)
            {
            case AnalogOutChannelsEnum.AOut1: _channelName = ChannelNamesEnum.AOUT1; break;

            case AnalogOutChannelsEnum.AOut2: _channelName = ChannelNamesEnum.AOUT2; break;

            default:
                throw new ArgumentException();
            }

            _driver          = Driver;
            _DigitalChannels = new DigitalChannels(ref _driver);

            switch (Channel)
            {
            case AnalogOutChannelsEnum.AOut1:
            {
                _Selector_A0 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 4);
                _Selector_A1 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 5);
                _Selector_A2 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 6);

                _Enable = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 7);
            } break;

            case AnalogOutChannelsEnum.AOut2:
            {
                _Selector_A0 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 0);
                _Selector_A1 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 1);
                _Selector_A2 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 2);

                _Enable = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 3);
            } break;

            default:
                break;
            }

            _driver.AnalogOut.set_Polarity(_channelName, AgilentU254xAnalogPolarityEnum.AgilentU254xAnalogPolarityBipolar);
        }
        public AO_Channel(AnalogOutChannelsEnum Channel, AgilentU254xClass Driver)
        {
            switch (Channel)
            {
                case AnalogOutChannelsEnum.AOut1: _channelName = ChannelNamesEnum.AOUT1; break;
                case AnalogOutChannelsEnum.AOut2: _channelName = ChannelNamesEnum.AOUT2; break;

                default:
                    throw new ArgumentException();
            }

            _driver = Driver;
            _DigitalChannels = new DigitalChannels(_driver);

            switch (Channel)
            {
                case AnalogOutChannelsEnum.AOut1:
                    {
                        _Selector_A0 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 4);
                        _Selector_A1 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 5);
                        _Selector_A2 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 6);

                        _Enable = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 7);
                    } break;
                case AnalogOutChannelsEnum.AOut2:
                    {
                        _Selector_A0 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 0);
                        _Selector_A1 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 1);
                        _Selector_A2 = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 2);

                        _Enable = new DigitalBit(_DigitalChannels[DigitalChannelsEnum.DIOA], 3);
                    } break;
                default:
                    break;
            }

            _driver.AnalogOut.set_Polarity(_channelName, AgilentU254xAnalogPolarityEnum.AgilentU254xAnalogPolarityBipolar);
        }
        public DigitalChannel(DigitalChannelsEnum Channel, AgilentU254xClass Driver)
        {
            int width = 0;
            switch (Channel)
            {
                case DigitalChannelsEnum.DIOA:
                    {
                        _channelName = ChannelNamesEnum.DIOA;
                        width = 8;
                    } break;
                case DigitalChannelsEnum.DIOB:
                    {
                        _channelName = ChannelNamesEnum.DIOB;
                        width = 8;
                    } break;
                case DigitalChannelsEnum.DIOC:
                    {
                        _channelName = ChannelNamesEnum.DIOC;
                        width = 4;
                    } break;
                case DigitalChannelsEnum.DIOD:
                    {
                        _channelName = ChannelNamesEnum.DIOD;
                        width = 4;
                    } break;
                default:
                    throw new ArgumentException();
            }
            _driver = Driver;
            Driver.Digital.Channels.get_Item(_channelName).Direction = AgilentU254xDigitalChannelDirectionEnum.AgilentU254xDigitalChannelDirectionOut;

            _bitArray = new DigitalBit[width];
            for (int i = 0; i < width; i++)
            {
                _bitArray[i] = new DigitalBit(this, i);
            }
        }