示例#1
0
        public void Write(IoPoint ioPoint, bool value)
        {
            var device = _devices[ioPoint.BoardNo];
            var ret    = DASK.DO_WriteLine((ushort)device, 0, (ushort)ioPoint.PortNo, (ushort)(value ? 1 : 0));

            if (ret != DASK.NoError)
            {
                switch (ret)
                {
                case DASK.ErrorInvalidCardNumber:
                    throw new DaskException(string.Format("The CardNumber argument {0} is out of range (larger than 31).", device));

                case DASK.ErrorCardNotRegistered:
                    throw new DaskException(string.Format("No card registered as {0} CardNumber.", device));

                case DASK.ErrorFuncNotSupport:
                    throw new DaskException(string.Format("The {0} function called is not supported by this type of card.", "DO_WriteLine"));

                case DASK.ErrorInvalidIoChannel:
                    throw new DaskException(string.Format("The specified Channel or Port argument {0} is out of range.", ioPoint.PortNo));

                default:
                    throw new DaskException("Unknown error.");
                }
            }
        }
示例#2
0
 public LayerLight(IoPoint greenIo, IoPoint yellowIo, IoPoint redIo, IoPoint speakerIo)
 {
     GreenLamp  = greenIo;
     YellowLamp = yellowIo;
     RedLamp    = redIo;
     Speeker    = speakerIo;
 }
示例#3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="InSensor">感应器信号</param>
 /// <param name="OutVacuo">吸真空输出</param>
 public VacuoCylinder(IoPoint InSensor, IoPoint OutVacuo)
 {
     _InSensor = InSensor;
     _OutVacuo = OutVacuo;
     _watchInhale[0].Restart();
     _watchInhale[1].Restart();
 }
示例#4
0
 public Vacuo(IoPoint suckIo, IoPoint brokenIo, IoPoint keepIo)
 {
     _suckIo   = suckIo;
     _brokenIo = brokenIo;
     _keepIo   = keepIo;
     State     = VacuoStates.None;
 }
示例#5
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="InOrigin">原点信号</param>
 /// <param name="InMove">动点信号</param>
 /// <param name="OutMove">动点输出</param>
 public SingleCylinder(IoPoint InOrigin, IoPoint InMove, IoPoint OutMove)
 {
     _InOrigin = InOrigin;
     _InMove   = InMove;
     _OutMove  = OutMove;
     _watchOrigin.Restart();
     _watchMove.Restart();
 }
示例#6
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="InSensor">感应器信号</param>
 /// <param name="OutVacuo">吸真空输出</param>
 /// <param name="OutBroken">破真空输出</param>
 public VacuoBrokenCylinder(IoPoint InSensor, IoPoint OutVacuo, IoPoint OutBroken)
 {
     _InSensor  = InSensor;
     _OutVacuo  = OutVacuo;
     _OutBroken = OutBroken;
     _watchInhale.Restart();
     _watchBroken.Restart();
 }
示例#7
0
        public void Write(IoPoint ioPoint, bool value)
        {
            var ret = APS168.APS_write_d_channel_output(ioPoint.BoardNo, 0, ioPoint.PortNo, value ? 1 : 0);

            if (ret < 0)
            {
                ThrowIfResultError(ret, string.Format("APS_write_d_channel[{0},{1}]", ioPoint.BoardNo, ioPoint.PortNo));
            }
        }
示例#8
0
 public SingleCylinder2(IoPoint InOrigin1, IoPoint InOrigin2, IoPoint InMove1, IoPoint InMove2, IoPoint OutMove)
 {
     _InOrigin1 = InOrigin1;
     _InOrigin2 = InOrigin2;
     _InMove1   = InMove1;
     _InMove2   = InMove2;
     _OutMove   = OutMove;
     _watchOrigin.Restart();
     _watchMove.Restart();
 }
示例#9
0
        public bool Read(IoPoint ioPoint)
        {
            var value = 0;

            if ((ioPoint.IoMode & IoModes.Responser) != 0)
            {
                var ret = APS168.APS_read_d_output(ioPoint.BoardNo, 0, ref value);
            }
            else if ((ioPoint.IoMode & IoModes.Senser) != 0)
            {
                var ret = APS168.APS_read_d_input(ioPoint.BoardNo, 0, ref value);
            }
            return((value & (1 << ioPoint.PortNo)) > 0);
        }
示例#10
0
        public override bool Read(IoPoint ioPoint)
        {
            byte value = 0;
            uint ret   = 0;

            if ((ioPoint.IoMode & IoModes.Responser) != 0)
            {
                ret = Motion.mAcm_AxDoGetBit(m_Axises[ioPoint.BoardNo], (ushort)ioPoint.PortNo, ref value);
            }
            else if ((ioPoint.IoMode & IoModes.Senser) != 0)
            {
                ret = Motion.mAcm_AxDiGetBit(m_Axises[ioPoint.BoardNo], (ushort)ioPoint.PortNo, ref value);
            }
            return(ret != (uint)ErrorCode.SUCCESS ? false : value > 0 ? true : false);
        }
示例#11
0
        public bool Read(IoPoint ioPoint)
        {
            var    device = _devices[ioPoint.BoardNo];
            ushort value  = 0;
            var    ret    = 0;

            if ((ioPoint.IoMode & IoModes.Responser) == 0)
            {
                ret = DASK.DI_ReadLine((ushort)device, 0, (ushort)ioPoint.PortNo, out value);
            }
            else
            {
                ret = DASK.DO_ReadLine((ushort)device, 0, (ushort)ioPoint.PortNo, out value);
            }
            if (ret != DASK.NoError)
            {
                switch (ret)
                {
                case DASK.ErrorInvalidCardNumber:
                    throw new DaskException(string.Format("The CardNumber argument {0} is out of range (larger than 31).", device));

                case DASK.ErrorCardNotRegistered:
                    throw new DaskException(string.Format("No card registered as {0} CardNumber.", device));

                case DASK.ErrorFuncNotSupport:
                    throw new DaskException(string.Format("The {0} function called is not supported by this type of card.", "DO_WriteLine"));

                case DASK.ErrorInvalidIoChannel:
                    throw new DaskException(string.Format("The specified Channel or Port argument {0} is out of range.", ioPoint.PortNo));

                default:
                    throw new DaskException("Unknown error.");
                }
            }
            return(value > 0);
        }
示例#12
0
 public EventButton(IoPoint pressedIo)
 {
     PressedIO = pressedIo;
 }
示例#13
0
 public AnalogSignal(IoPoint ioPoint)
 {
     _ioPoint = ioPoint;
 }
示例#14
0
 public bool Read(IoPoint ioPoint)
 {
     return(ApsController.Read(ioPoint));
 }
示例#15
0
 public void Write(IoPoint ioPoint, bool value)
 {
     ApsController.Write(ioPoint, value);
 }
示例#16
0
 /// <summary>
 /// 读取DIO的信号
 /// </summary>
 /// <param name="ioPoint"></param>
 /// <returns></returns>
 public override bool Read(IoPoint ioPoint)
 {
     return(false);
 }
示例#17
0
 /// <summary>
 /// 输出DO的信号
 /// </summary>
 /// <param name="ioPoint"></param>
 /// <param name="value"></param>
 public override void Write(IoPoint ioPoint, bool value)
 {
 }
示例#18
0
 public LightButton(IoPoint pressedIo, IoPoint lightIo) : base(pressedIo)
 {
     _lightIo = lightIo;
 }
示例#19
0
 public Wheel(IoPoint directIoPoint, IoPoint reverseIoPoint)
 {
     _directIoPoint  = directIoPoint;
     _reverseIoPoint = reverseIoPoint;
 }
示例#20
0
 public Wheel(IoPoint directIoPoint)
 {
     _directIoPoint = directIoPoint;
 }
示例#21
0
 public override void Write(IoPoint ioPoint, bool value)
 {
     Motion.mAcm_AxDoSetBit(m_Axises[ioPoint.BoardNo], (ushort)ioPoint.PortNo, (byte)(value ? 1 : 0));
 }
示例#22
0
 public Signal(IoPoint signalPoint)
 {
     _signalPoint = signalPoint;
 }
示例#23
0
 public override bool Read(IoPoint ioPoint)
 {
     return(0 > 0);
 }
示例#24
0
 public Sensor(IoPoint ioPoint)
 {
     _ioPoint = ioPoint;
 }
示例#25
0
文件: Automatic.cs 项目: licanwen/op
 /// <summary>
 /// 写
 /// </summary>
 /// <param name="ioPoint"></param>
 /// <param name="value"></param>
 public abstract void Write(IoPoint ioPoint, bool value);
示例#26
0
 public Vacuo(IoPoint suckIo) : this(suckIo, null)
 {
 }
示例#27
0
文件: Automatic.cs 项目: licanwen/op
 /// <summary>
 /// 读
 /// </summary>
 /// <param name="ioPoint"></param>
 /// <returns></returns>
 public abstract bool Read(IoPoint ioPoint);
示例#28
0
 public SwitchSignal(IoPoint ioPoint)
 {
     _ioPoint = ioPoint;
 }