示例#1
0
        public override bool  Open()
        {
            int boardIdInBits = 0;

            int ret = APS168.APS_register_virtual_board(1, 1);

            // Card(Board) initial,mode bit0(0:By system assigned, 1:By dip switch)

            ret = APS168.APS_initial(ref boardIdInBits, m_cardIdMode);
            if (ret >= 0)
            {
                APS168.APS_get_first_axisId(m_cardId, ref m_startAxisIndex, ref m_totalAxisCount);
                int CardName = 0;
                APS168.APS_get_card_name(m_cardId, ref CardName);
                if (CardName != (Int32)APS_Define.DEVICE_NAME_ENET_EMX100)
                {
                    throw new Exception("运动控制是型号不是EMX100!");
                }
            }
            else
            {
                throw new Exception("运动控制卡初始化失败,请检查驱动是否装好或者MotionCreatePro已经开启!");
            }
            m_isInitialed = true;
            return(true);
        }
示例#2
0
        public override bool Initialize()
        {
            int boardBits = 0;
            var ret       = APS168.APS_initial(ref boardBits, 0);

            return(ret == 0);
        }
示例#3
0
        /// <summary>
        /// Initials the specified axis identifier.
        /// </summary>
        /// <param name="Axis_ID">The axis identifier.</param>
        /// <returns>System.Int32.</returns>
        public override int InitialAxis(Int32 Axis_ID)
        {
            int err = -1;

            err = APS168.APS_initial(ref mCardPara.boardID_InBits, mCardPara.mode);
            mCardPara.AxisID      = Axis_ID;
            this.currentDirection = MotionDirection.Initial;
            return(err);
        }
示例#4
0
        private void InitializeCard()
        {
            var boardBits = 0;
            var ret       = APS168.APS_initial(ref boardBits, 0);

            if (ret == 0)
            {
                foreach (var cardNo in _cardNos)
                {
                    if (((boardBits >> cardNo) & 1) == 0)
                    {
                        throw new SystemException("Board Id search error !");
                    }
                    var cardName = 0;
                    ret = APS168.APS_get_card_name(cardNo, ref cardName);
                    var innerMsg = "";
                    innerMsg = GetErrorCodeDesc((APS_Define)ret);
                    if (innerMsg != "No Error")
                    {
                        MessageBox.Show(string.Format("APS_get_card_name Error:{0}", innerMsg));
                    }
                    //ThrowIfResultError(ret, "Initial");


                    if ((cardName == (int)APS_Define.DEVICE_NAME_PCI_825458) ||
                        (cardName == (int)APS_Define.DEVICE_NAME_AMP_20408C))
                    {
                        var startAxisId  = 0;
                        var totalAxisNum = 0;
                        APS168.APS_get_first_axisId(cardNo, ref startAxisId, ref totalAxisNum);
                        for (var index = 0; index < totalAxisNum; ++index)
                        {
                            _axises.Add(startAxisId + index);
                        }

                        APS168.APS_load_parameter_from_flash(cardNo);
                    }
                    else
                    {
                        MessageBox.Show("Board type not matching!");
                        //throw new ApsException("Board type not matching!");
                    }
                }
            }
            else
            {
                var innerMsg = "";
                innerMsg = GetErrorCodeDesc((APS_Define)ret);
                if (innerMsg != "No Error")
                {
                    MessageBox.Show(string.Format("板卡初始化错误:{0}", innerMsg));
                }
                //ThrowIfResultError(ret, "APS_initial");
            }
        }
示例#5
0
 public override int Initial()
 {
     lock (obj)
     {
         int boardId = 0;
         int mode    = 0;
         int ret     = APS168.APS_initial(ref boardId, mode);
         if (ret != 0)
         {
             return(ret);
         }
         return(boardId);
     }
 }
示例#6
0
        public void Initial(int cardId, int mode)
        {
            CardId = cardId;
            var boardIdInBits = 0;
            // Card(Board) initial,mode bit0(0:By system assigned, 1:By dip switch)
            var ret = APS168.APS_initial(ref boardIdInBits, mode);

            if (ret >= 0)
            {
                IsInitialed = true;
                APS168.APS_get_first_axisId(cardId, ref StartAxisId, ref TotalAxis);
                APS168.APS_get_card_name(cardId, ref CardName);
                if (CardName != (int)APS_Define.DEVICE_NAME_PCI_825458 && CardName != (int)APS_Define.DEVICE_NAME_AMP_20408C)
                {
                    MessageBox.Show("运动控制是型号不是204C或208C!");
                }
            }
            else
            {
                MessageBox.Show("运动控制卡初始化失败,请检查驱动是否装好或者MotionCreatePro已经开启!");
            }
        }
示例#7
0
        public bool InitialFixture(int cardId, int mode)
        {
            CardId = cardId;
            int boardIdInBits = 0;
            // Card(Board) initial,mode bit0(0:By system assigned, 1:By dip switch)
            int ret = APS168.APS_initial(ref boardIdInBits, mode);

            if (ret >= 0)
            {
                APS168.APS_get_first_axisId(cardId, ref StartAxisId, ref TotalAxis);
                APS168.APS_get_card_name(cardId, ref CardName);
                if (CardName != (Int32)APS_Define.DEVICE_NAME_PCI_825458 && CardName != (Int32)APS_Define.DEVICE_NAME_AMP_20408C)
                {
                    //MessageBox.Show("运动控制是型号不是204C或208C!");
                    return(false);
                }
            }
            else
            {
                //MessageBox.Show("运动控制卡初始化失败,请检查驱动是否装好或者MotionCreatePro已经开启!");
                return(false);
            }


            //判断配置文件是否存在
            if (File.Exists(txtXmlFilename))
            {
                if (LoadParamFromFile(txtXmlFilename) == false)
                {
                    return(false);
                }
            }

            IsInitialed = true;
            return(true);
        }
        public int OpenDevice()
        {
            if (!IsInitOK)
                return (int)ErrorDef.InitFailedWhenOpenCard;

            if (IsDeviceOpen)
                return (int)ErrorDef.Success;


            
            // Card(Board) initial,mode bit0(0:By system assigned, 1:By dip switch)  
            int ret = 0;
            lock (SDKLocker)
            {
                if (!IsSDKInitialized)
                {
                    ret = APS168.APS_initial(ref BoardBitsLinked, 0); //可以获取已连接计算机的控制卡的bits
                    if (ret != 0)
                        return (int)ErrorDef.InvokeFailed;

                    IsSDKInitialized = true;
                }

                bool isBoardIDExist = false; //检查总线中是否连接有指定BoardID的卡
                for (int i = 0; i < 32; i++)
                    if ((BoardBitsLinked & (1 << i)) != 0 && _boardID == (i))
                    {
                        isBoardIDExist = true;
                        break;
                    }
                if (!isBoardIDExist)
                    return (int)ErrorDef.BoardIDNotExist;
                

                if ((BoardBitsLoaded & (1 << (_boardID ))) == 0) //从Flash中载入参数
                {
                    ret = APS168.APS_load_parameter_from_flash(_boardID); //从Flash中载入参数
                    if (0 != ret)
                        return (int)ErrorDef.InvokeFailed;
                    BoardBitsLoaded |= (1 << (_boardID ));
                }
                BoardOpened++;
                //if(!mdCfg.ContainsItem("Card_" + _boardID))
                //    mdCfg.AddItem("Card"+ _boardID ,new JFXM)


                dio = new JFAps168DIO(_boardID);
                mc = new JFAps168MC(_boardID, mdCfg,this);
                cmpTrigs = new JFAps168CompareTrigger(_boardID, mdCfg, this);



                dio.Open();
                mc.Open();
                cmpTrigs.Open();

                AioCount = 0;
                McCount = 1;
                DioCount = 1;
                CompareTriggerCount = 1;

                IsInitOK = true;
                IsDeviceOpen = true;

            }
            return (int)ErrorDef.Success;
        }