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
|
{
|
public partial class CtrlMotionCardAxisStatus : UserControl
|
{
|
public CtrlMotionCardAxisStatus()
|
{
|
InitializeComponent();
|
}
|
|
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();
|
Device = device;
|
_axisIndex = axisIndex;
|
_axisName = axisName;
|
groupBoxAxisStatus.Text = $"运动轴:{axisIndex}-{axisName}";
|
}
|
|
private void RefreshStatus(object sender, EventArgs e)
|
{
|
_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;//运动出错
|
|
}
|
}
|
}
|
}
|