using Bro.Common.Base;
|
using Bro.Common.Helper;
|
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 FrmMotionCardOperationBase : Form
|
{
|
public FrmMotionCardOperationBase()
|
{
|
InitializeComponent();
|
}
|
|
public IDevice Device { get; set; }
|
|
public MovingOption MotionCardMovingOption { get; set; } = new MovingOption();
|
|
/// <summary>
|
/// 当前板卡实例
|
/// </summary>
|
protected MotionCardBase MotionCard
|
{
|
get => Device as MotionCardBase;
|
}
|
|
|
public FrmMotionCardOperationBase(IDevice device)
|
{
|
InitializeComponent();
|
|
Device = device;
|
InitialLayout();
|
}
|
private void InitialLayout()
|
{
|
foreach (var axisConfig in MotionCard.IConfig.AxisSettings.FindAll(u => u.IsAxisEnabled))
|
{
|
CtrlMotionCardAxisOperation axisOperation = new CtrlMotionCardAxisOperation(Device, axisConfig.AxisIndex, axisConfig.AxisName);
|
//axisOperation.Dock = DockStyle.Fill;
|
flowLayoutPanel1.Controls.Add(axisOperation);
|
|
}
|
|
propGrid.SelectedObject = MotionCardMovingOption;
|
}
|
|
private void buttonClearStatus_Click(object sender, EventArgs e)
|
{
|
MotionCard.ClearStatus(1, MotionCard.IConfig.AxisSettings.FindAll(u => u.IsAxisEnabled).Count);
|
}
|
|
private void buttonServoEnable_Click(object sender, EventArgs e)
|
{
|
int sts = MotionCard.GetAxisStatus(MotionCardMovingOption.AxisIndex);
|
if ((sts & 0x200) == 0)//关闭状态
|
{
|
MotionCard.AxisOnAsync(MotionCardMovingOption.AxisIndex).GetAwaiter().GetResult();
|
buttonServoEnable.Text = "伺服已开启";
|
}
|
else
|
{
|
MotionCard.AxisOffAsync(MotionCardMovingOption.AxisIndex).GetAwaiter().GetResult();
|
buttonServoEnable.Text = "伺服已关闭";
|
}
|
}
|
|
private void buttonPositionReset_Click(object sender, EventArgs e)
|
{
|
var res = MotionCard.PositionReset(MotionCardMovingOption.AxisIndex, 1);
|
}
|
|
private void btnStart_Click(object sender, EventArgs e)
|
{
|
MotionCard.SingleAxisMoving(MotionCardMovingOption).GetAwaiter().GetResult();
|
}
|
|
private void buttonSmoothStop_Click(object sender, EventArgs e)
|
{
|
MotionCard.MoveStop(MotionCardMovingOption.AxisIndex, 0).GetAwaiter().GetResult();
|
}
|
|
private void buttonEmergencyStop_Click(object sender, EventArgs e)
|
{
|
MotionCard.MoveStop(MotionCardMovingOption.AxisIndex, 1).GetAwaiter().GetResult();
|
}
|
|
}
|
}
|