public void SetPortIOMode(int portNo, PortIOMode mode)
        {
            this.CheckPortNo(portNo);

            PortIOMode OrgPortIOMOde = this.GetPortIOMode(portNo);

            if (OrgPortIOMOde == mode)
            {
                return;
            }

            int IOMode = AC6651.GetIOMode(this.Handle);

            int NewIOMode = (int)mode;

            if (NewIOMode == 1)
            {
                Helper.SetBit(ref IOMode, portNo);
            }
            else if (NewIOMode == 0)
            {
                Helper.ClearBit(ref IOMode, portNo);
            }

            int RetCode = AC6651.SetIOMode(this.Handle, IOMode);

            if (RetCode != AC6651.Succeed)
            {
                throw Helper.NewCustomException("StringAC6651SetPortIOModeError");
            }
        }
        public void WriteControlCode(int controlCode)
        {
            int retcode = AC6651.DO(this.Handle, this.PortNoForOutPut, controlCode);

            if (retcode != AC6651.Succeed)
            {
                throw Helper.NewCustomException(@"StringAC6651DataOutError");
            }
        }
        public PortIOMode GetPortIOMode(int portNo)
        {
            this.CheckPortNo(portNo);

            int IOMode = AC6651.GetIOMode(this.Handle);

            IOMode = (IOMode >> portNo) & 0x1;

            return((PortIOMode)IOMode);
        }
        public static ISwitchController Open(int deviceNo)
        {
            if (instance == null)
            {
                if (!GUI.Program.Debug)
                {
                    IntPtr handle = AC6651.OpenDevice(deviceNo);
                    if (handle == AC6651.InvalidHandle)
                    {
                        throw Helper.NewCustomException("³õʼ»¯AC6651´íÎó");
                    }

                    SwitchController c = new SwitchController(deviceNo);
                    c.Handle = handle;
                    instance = c;
                }
                else
                {
                    instance = new SwitchControllStub();
                }
            }

            return(instance);
        }
        public int ReadControlCode()
        {
            int Code = AC6651.DI(this.Handle, this.PortNoForInput);

            return(Code);
        }
 public void Close()
 {
     AC6651.CloseDevice(this.Handle);
 }