Пример #1
0
        //创建PCI1752更新输出及输出状态回读类的实例
        /// <summary>
        /// 创建PCI1752更新输出及输出状态回读类的实例
        /// </summary>
        /// <param name="TargetDeviceNumber">目标PCI1752设备卡号</param>
        /// <param name="DLLPassword">使用此DLL的密码</param>
        public PCI1752(int TargetDeviceNumber, string DLLPassword)
        // Automation.BDaq.AccessMode TargetAccessMode,<param name="TargetAccessMode">访问模式</param>
        {
            SuccessBuiltNew   = false;
            PasswordIsCorrect = false;

            try
            {
                if (TargetDeviceNumber < 0)
                {
                    MessageBox.Show("'TargetDeviceNumber'设备卡号不能小于0,请改为正确参数。",
                                    "参数错误");
                    return;
                }

                //if (TargetAccessMode == AccessMode.ModeRead)
                //    {
                //    ReadOnlyFlag = true;
                //    }
                //else
                //    {
                //    ReadOnlyFlag = false;
                //    }

                //ErrCode = Automation.BDaq.BDaqDevice.Open(TargetDeviceNumber,
                //    TargetAccessMode, out TargetDevice);

                ErrCode = BDaqDevice.Open(TargetDeviceNumber,
                                          AccessMode.ModeWriteWithReset, out TargetDevice);

                if (ErrCode == ErrorCode.Success)
                {
                    ErrCode = TargetDevice.GetModule(0, out TargetDOCard);
                    if (ErrCode == ErrorCode.Success)
                    {
                        TempDeviceNumber    = TargetDeviceNumber;
                        SuccessBuiltNew     = true;
                        NeedFormControlFlag = false;
                    }
                    else
                    {
                        SuccessBuiltNew = false;
                        return;
                    }
                }
                else
                {
                    SuccessBuiltNew = false;
                    return;
                }
            }
            catch (Exception ex)
            {
                SuccessBuiltNew = false;
                MessageBox.Show("创建类的实例时出现错误!\r\n" + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }
Пример #2
0
        //创建PCI1754更新输入类的实例
        /// <summary>
        /// 创建PCI1754更新输入类的实例
        /// </summary>
        /// <param name="TargetDeviceNumber">目标PCI1754设备卡号</param>
        /// <param name="DLLPassword">使用此DLL的密码</param>
        public PCI1754(int TargetDeviceNumber)
        {
            SuccessBuiltNew = false;
            try
            {
                if (TargetDeviceNumber < 0)
                {
                    MessageBox.Show("'TargetDeviceNumber'设备卡号不能小于0,请改为正确参数。",
                                    "参数错误");
                    return;
                }

                ErrCode = BDaqDevice.Open(TargetDeviceNumber,
                                          AccessMode.ModeWriteWithReset, out TargetDevice);

                if (ErrCode == ErrorCode.Success)
                {
                    ErrCode = TargetDevice.GetModule(0, out TargetDICard);
                    if (ErrCode == ErrorCode.Success)
                    {
                        TempDeviceNumber    = TargetDeviceNumber;
                        SuccessBuiltNew     = true;
                        NeedFormControlFlag = false;
                    }
                    else
                    {
                        SuccessBuiltNew = false;
                        return;
                    }
                }
                else
                {
                    SuccessBuiltNew = false;
                    return;
                }
            }
            catch (Exception ex)
            {
                SuccessBuiltNew = false;
                MessageBox.Show("创建类的实例时出现错误!\r\n" + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }
Пример #3
0
        override public bool Init(HardWareInfoBase infoHardWare)
        {
            AdvanceInputInfo hardWareInfo = (AdvanceInputInfo)infoHardWare;

            iCardNo = hardWareInfo.iCardNo;
            ErrorCode ret;

            try
            {
                ret = BDaqDevice.Open(iCardNo, AccessMode.ModeWriteWithReset, out m_device);
                if (ErrorCode.Success == ret)
                {
                    ret = m_device.GetModule(0, out m_dio);
                    if (ErrorCode.Success == ret)
                    {
                        bInitOK = true;
                    }
                    else
                    {
                        bInitOK = false;
                        return(false);
                    }
                }
                else
                {
                    bInitOK = false;
                    return(false);
                }
            }
            catch
            {
                bInitOK = false;
                return(false);
            }

            System.Threading.Thread threadScan = new System.Threading.Thread(ScanThreadFunction);
            threadScan.IsBackground = true;
            threadScan.Start();
            return(true);
        }