领胜LDS 键盘AOI检测项目
src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.cs
@@ -1,5 +1,8 @@
using Bro.Common.Model;
using Bro.Common.Base;
using Bro.Common.Interface;
using Bro.Common.Model;
using System;
using System.Linq;
using System.Windows.Forms;
namespace Bro.UI.Device.Winform
@@ -11,29 +14,44 @@
            InitializeComponent();
        }
        public AxisMovingStatus _axisMovingStatus = new AxisMovingStatus();
        public CtrlMotionCardAxisStatus(AxisMovingStatus axisMovingStatus)
        public IDevice Device { get; set; }
        protected MotionCardBase MotionCard
        {
            get => Device as MotionCardBase;
        }
        private int _axisIndex { get; set; }
        private string _axisName { get; set; }
        public AxisMovingStatus _axisMovingStatus;
        public CtrlMotionCardAxisStatus(IDevice device, int axisIndex, string axisName)
        {
            InitializeComponent();
            _axisMovingStatus = axisMovingStatus;
            groupBoxAxisStatus.Text = $"运动轴:{_axisMovingStatus.AxisIndex}-{_axisMovingStatus.AxisName}";
            Device = device;
            _axisIndex = axisIndex;
            _axisName = axisName;
            groupBoxAxisStatus.Text = $"运动轴:{axisIndex}-{axisName}";
        }
        private void RefreshStatus(object sender, EventArgs e)
        {
            textBoxPrfPositon.Text = _axisMovingStatus.Destination.ToString();
            textBoxCurPosition.Text = _axisMovingStatus.CurPosition.ToString();
            textBoxPrfVel.Text = _axisMovingStatus.PrfVelocity.ToString();
            textBoxCurVel.Text = _axisMovingStatus.CurVelocity.ToString();
            int axis_sts = _axisMovingStatus.AxisStatus;
            ioIndicatorCtrl1.IsOn = (axis_sts & 0x2) == 0;//驱动报警
            ioIndicatorCtrl2.IsOn = (axis_sts & 0x200) == 0;//伺服使能
            ioIndicatorCtrl6.IsOn = (axis_sts & 0x20) == 0;//正限位
            ioIndicatorCtrl8.IsOn = (axis_sts & 0x40) == 0;//负限位
            ioIndicatorCtrl9.IsOn =(axis_sts & 0x400) == 0;//运动状态
            ioIndicatorCtrl10.IsOn = (axis_sts & 0x10) == 0;//运动出错
            _axisMovingStatus = MotionCard.AxisStatusList.FirstOrDefault(u => u.AxisIndex == _axisIndex);
            if (_axisMovingStatus != null)
            {
                textBoxPrfPositon.Text = _axisMovingStatus.CurPosition.ToString();
                textBoxPrfVel.Text = _axisMovingStatus.PrfVelocity.ToString();
                textBoxCurVel.Text = _axisMovingStatus.CurVelocity.ToString();
                int axis_sts = _axisMovingStatus.AxisStatus;
                ioIndicatorCtrl1.IsOn = (axis_sts & 0x2) != 0;//驱动报警
                ioIndicatorCtrl2.IsOn = (axis_sts & 0x200) != 0;//伺服使能 1为开启
                ioIndicatorCtrl6.IsOn = (axis_sts & 0x20) != 0;//正限位
                ioIndicatorCtrl8.IsOn = (axis_sts & 0x40) != 0;//负限位
                ioIndicatorCtrl9.IsOn = (axis_sts & 0x400) != 0;//运动状态
                ioIndicatorCtrl10.IsOn = (axis_sts & 0x10) != 0;//运动出错
            }
        }
    }
}