//INITIALIZE
        public PumpControl()
        {
            CancellationTokenSource cts = new CancellationTokenSource();
            int      boardNumber        = 0;
            MccBoard myBoard;

            myBoard = new MccBoard(boardNumber);

            //Pump
            myBoard.DConfigBit(DigitalPortType.AuxPort, PumpControlBit, DigitalPortDirection.DigitalOut);

            //Valves
            myBoard.DConfigBit(DigitalPortType.AuxPort, Valve1Control, DigitalPortDirection.DigitalOut);
            myBoard.DConfigBit(DigitalPortType.AuxPort, Valve2Control, DigitalPortDirection.DigitalOut);
            myBoard.DConfigBit(DigitalPortType.AuxPort, Valve3Control, DigitalPortDirection.DigitalOut);
            myBoard.DConfigBit(DigitalPortType.AuxPort, Valve4Control, DigitalPortDirection.DigitalOut);
            myBoard.DConfigBit(DigitalPortType.AuxPort, Valve5Control, DigitalPortDirection.DigitalOut);
            myBoard.DConfigBit(DigitalPortType.AuxPort, Valve6Control, DigitalPortDirection.DigitalOut);
            myBoard.DConfigBit(DigitalPortType.AuxPort, Valve7Control, DigitalPortDirection.DigitalOut);

            DaqBoard    = myBoard;
            BoardNumber = boardNumber;
            InitializeComponent();
            myBoard.DioConfig.GetDevType(1, out int configVal);
        }
예제 #2
0
        public override IObservable <short> Process <TSource>(IObservable <TSource> source)
        {
            return(Observable.Defer(() =>
            {
                ErrorInfo configError;
                var portType = PortType;
                var bitNumber = BitNumber;
                var board = new MccBoard(BoardNumber);
                if (bitNumber.HasValue)
                {
                    configError = board.DConfigBit(portType, bitNumber.Value, DigitalPortDirection.DigitalIn);
                }
                else
                {
                    configError = board.DConfigPort(portType, DigitalPortDirection.DigitalIn);
                }
                ThrowExceptionForErrorInfo(configError);

                if (bitNumber.HasValue)
                {
                    return source.Select(input =>
                    {
                        var error = board.DBitIn(portType, bitNumber.Value, out DigitalLogicState bitValue);
                        ThrowExceptionForErrorInfo(error);
                        return (short)bitValue;
                    });
                }
                else
                {
                    return source.Select(input =>
                    {
                        var error = board.DIn(portType, out short dataValue);
                        ThrowExceptionForErrorInfo(error);
                        return dataValue;
                    });
                }
            }));
        }
예제 #3
0
        public override IObservable <short> Process(IObservable <short> source)
        {
            return(Observable.Defer(() =>
            {
                ErrorInfo configError;
                var portType = PortType;
                var bitNumber = BitNumber;
                var board = new MccBoard(BoardNumber);
                if (bitNumber.HasValue)
                {
                    configError = board.DConfigBit(portType, bitNumber.Value, DigitalPortDirection.DigitalOut);
                }
                else
                {
                    configError = board.DConfigPort(portType, DigitalPortDirection.DigitalOut);
                }
                ThrowExceptionForErrorInfo(configError);

                if (bitNumber.HasValue)
                {
                    return source.Do(input =>
                    {
                        var bitValue = input != 0 ? DigitalLogicState.High : DigitalLogicState.Low;
                        var error = board.DBitOut(portType, bitNumber.Value, bitValue);
                        ThrowExceptionForErrorInfo(error);
                    });
                }
                else
                {
                    return source.Do(dataValue =>
                    {
                        var error = board.DOut(portType, dataValue);
                        ThrowExceptionForErrorInfo(error);
                    });
                }
            }));
        }