예제 #1
0
파일: App.cs 프로젝트: xhyangxianjun/ASMZZZ
        /// <summary>
        /// 轴动作完成
        /// </summary>
        /// <param name="AxisName"></param>
        /// <param name="errMsg"></param>
        /// <param name="timeoutSelSecond"></param>
        /// <returns></returns>
        private int MotionDone(string AxisName, out string errMsg, int timeoutSelSecond = 60000)
        {
            DateTime starttime = new DateTime();

            errMsg = "";
            IJFInitializable dev;
            JFDevCellInfo    ci;

            if (!JFCMFunction.CheckDevCellName(JFCMFunction.Axis, AxisName, out dev, out ci, out errMsg))
            {
                return((int)ErrorDef.InvokeFailed);
            }
            IJFModule_Motion md = (dev as IJFDevice_MotionDaq).GetMc(ci.ModuleIndex);

            while (true)
            {
                if (md.IsMDN(ci.ChannelIndex))
                {
                    break;
                }
                DateTime nowtime = new DateTime();
                if (nowtime.Subtract(starttime).TotalMilliseconds > timeoutSelSecond)
                {
                    return((int)ErrorDef.Timeout);
                }
                Thread.Sleep(10);
            }
            return((int)ErrorDef.Success);
        }
예제 #2
0
 void UpdateModuleStatus()
 {
     if (InvokeRequired)
     {
         Invoke(new Action(UpdateModuleStatus));
         return;
     }
     if (null == _module)
     {
         return;
     }
     if (tabCtrl.SelectedIndex == 0) //更新单轴控制界面
     {
         for (int i = 0; i < _module.AxisCount; i++)
         {
             _lstStatus[i].UpdateAxisStatus();
             _lstTest[i].UpdateAxisUI();
         }
     }
     else //更新插补测试界面
     {
         if (dgvLinePos.Rows.Count > 0) //更新直线查补控件
         {
             for (int i = 0; i < dgvLinePos.Rows.Count; i++)
             {
                 DataGridViewRow row       = dgvLinePos.Rows[i];
                 string          axisIDTxt = row.Cells[0].Value as string;
                 if (!string.IsNullOrEmpty(axisIDTxt))
                 {
                     int axisID = Convert.ToInt32(axisIDTxt);
                     if (axisID <= _module.AxisCount)
                     {
                         double currPos = 0;
                         int    err     = _module.GetFbkPos(axisID, out currPos);
                         if (err != 0)
                         {
                             row.Cells[2].Value = "获取失败";
                         }
                         else
                         {
                             row.Cells[2].Value = currPos.ToString("F3");
                         }
                         if (_module.IsMDN(axisID))
                         {
                             lampLineDone.LampColor = LampButton.LColor.Green;
                         }
                         else
                         {
                             lampLineDone.LampColor = LampButton.LColor.Gray;
                         }
                     }
                     else
                     {
                         row.Cells[2].Value = "轴序号错误";
                     }
                 }
                 else
                 {
                     row.Cells[2].Value = "";
                 }
             }
         }
     }
 }