private ErrorInfo StartPump()
        {
            PumpLabel.ForeColor = Color.Green;
            ErrorInfo info = DaqBoard.DBitOut(DigitalPortType.AuxPort, PumpControlBit, DigitalLogicState.High);

            return(info);
        }
Ejemplo n.º 2
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);
                    });
                }
            }));
        }