コード例 #1
0
ファイル: DeltaMotionMgr.cs プロジェクト: sanmengxishui/162
        public void WriteIOOut(ushort port, bool sts)
        {
            if (CardNo.Count == 0)
            {
                return;
            }
            uint IOStatus = 0;

            lock (sny_Obj)
            {
                CPCI_DMC.CS_DMC_01_get_dio_output_DW(CardNo[0], ref IOStatus);
                //ushort IOOutStatus = 0;
                //if (sts)
                //{
                //    IOOutStatus = (ushort)(IOStatus | (ushort)Math.Pow(2, port));
                //}
                //else
                //{
                //    IOOutStatus = (ushort)(IOStatus & (0xFFFF - (ushort)Math.Pow(2, port)));
                //}

                BitArray myVal = new BitArray(new int[] { (int)IOStatus });
                myVal[port] = sts;
                Byte[] myB = new Byte[4];
                myVal.CopyTo(myB, 0);

                uint IOOutStatus = BitConverter.ToUInt32(myB, 0);

                CPCI_DMC.CS_DMC_01_set_dio_output_DW(CardNo[0], IOOutStatus);
            }
        }
コード例 #2
0
ファイル: MotionManager.cs プロジェクト: sanmengxishui/162
        public void VWriteIOout(ushort CardNo, ushort port, bool sts)
        {
            uint IOStatus = 0;

            CPCI_DMC.CS_DMC_01_get_dio_output_DW(CardNo, ref IOStatus);
            ushort IOOutStatus = 0;

            if (sts)
            {
                IOOutStatus = (ushort)(IOStatus | (ushort)Math.Pow(2, port));
            }
            else
            {
                IOOutStatus = (ushort)(IOStatus & (0xFFFF - (ushort)Math.Pow(2, port)));
            }

            CPCI_DMC.CS_DMC_01_set_dio_output_DW(CardNo, IOOutStatus);
        }
コード例 #3
0
ファイル: DeltaMotionMgr.cs プロジェクト: sanmengxishui/162
 public void ResetIO()
 {
     CPCI_DMC.CS_DMC_01_set_dio_output_DW(CardNo[0], 0);
 }