using SA_LTT;
|
using SA_LTT.Module;
|
using System;
|
using System.Threading;
|
using System.Windows.Forms;
|
|
namespace SA_LTT_UI.Viewer
|
{
|
public partial class AttenuatorViewer : Form
|
{
|
MainFrame _mainFrame;
|
Thread t_UIUpdate;
|
|
bool updateCheck;
|
|
protected override CreateParams CreateParams
|
{
|
get
|
{
|
CreateParams MyCp = base.CreateParams;
|
MyCp.ExStyle |= 0x02000000;
|
|
return MyCp;
|
}
|
}
|
|
public AttenuatorViewer(MainFrame mainFrame)
|
{
|
InitializeComponent();
|
cbb_Resolution.SelectedIndex = 1;
|
|
_mainFrame = mainFrame;
|
t_UIUpdate = new Thread(UIUpdateTh);
|
t_UIUpdate.Start();
|
}
|
|
private void UIUpdateTh()
|
{
|
while (_mainFrame.equipment.IsDisposed == false)
|
{
|
Thread.Sleep(10);
|
|
if (updateCheck == false)
|
{
|
updateCheck = true;
|
UIUpdate();
|
}
|
}
|
}
|
|
private void UIUpdate()
|
{
|
if (InvokeRequired)
|
{
|
BeginInvoke(new UIUpdateDelegate(UIUpdate));
|
return;
|
}
|
else
|
{
|
try
|
{
|
lb_RotatorPosition.Text = $"Current waveplate rotator position is {_mainFrame.equipment.attenuator.Position} steps, {_mainFrame.equipment.attenuator.Degree} deg";
|
lb_MotorState.Text = _mainFrame.equipment.attenuator.MotorState.ToString();
|
lb_MotorSpeed.Text = _mainFrame.equipment.attenuator.DegreePerSecondFromSpeed.ToString() + "degree/sec";
|
lb_MotorResolution.Text = _mainFrame.equipment.attenuator.SteppingResolution.ToString();
|
lb_AccelerationValue.Text = _mainFrame.equipment.attenuator.AccelerationValue.ToString();
|
lb_DecelerationValue.Text = _mainFrame.equipment.attenuator.DecelerationValue.ToString();
|
lb_MotorEnable.BackColor = _mainFrame.equipment.attenuator.MotorEnable ? System.Drawing.Color.Lime : System.Drawing.Color.Red;
|
lb_PortName.Text = _mainFrame.equipment.attenuator.PortName;
|
lb_PortName.BackColor = _mainFrame.equipment.attenuator.IsOpen ? System.Drawing.Color.Lime : System.Drawing.Color.Red;
|
|
if (_mainFrame.equipment.attenuator.IsOpen)
|
{
|
if (gb_Control.Enabled == false)
|
{
|
gb_Control.Enabled = true;
|
}
|
}
|
else
|
{
|
if (gb_Control.Enabled)
|
{
|
gb_Control.Enabled = false;
|
}
|
}
|
}
|
catch (Exception e)
|
{
|
EquipmentLogManager.Instance.WriteExceptionLog(e.StackTrace);
|
}
|
finally
|
{
|
updateCheck = false;
|
}
|
}
|
}
|
|
private void AttenuatorViewer_FormClosing(object sender, FormClosingEventArgs e)
|
{
|
e.Cancel = true;
|
this.Hide();
|
}
|
|
private void btn_MinusJog_MouseDown(object sender, MouseEventArgs e)
|
{
|
_mainFrame.equipment.attenuator.JogNegative();
|
}
|
|
private void btn_MinusJog_MouseUp(object sender, MouseEventArgs e)
|
{
|
_mainFrame.equipment.attenuator.Stop();
|
}
|
|
private void btn_PlusJog_MouseDown(object sender, MouseEventArgs e)
|
{
|
_mainFrame.equipment.attenuator.JogPositive();
|
}
|
|
private void btn_PlusJog_MouseUp(object sender, MouseEventArgs e)
|
{
|
_mainFrame.equipment.attenuator.Stop();
|
}
|
|
private void btn_MoveMinus1000_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.attenuator.MoveRelative(-1000);
|
}
|
|
private void btn_MoveMinus100_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.attenuator.MoveRelative(-100);
|
}
|
|
private void btn_MoveMinus10_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.attenuator.MoveRelative(-10);
|
}
|
|
private void btn_MoveMinus1_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.attenuator.MoveRelative(-1);
|
}
|
|
private void btn_MovePlus1_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.attenuator.MoveRelative(1);
|
}
|
|
private void btn_MovePlus10_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.attenuator.MoveRelative(10);
|
}
|
|
private void btn_MovePlus100_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.attenuator.MoveRelative(100);
|
}
|
|
private void btn_MovePlus1000_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.attenuator.MoveRelative(1000);
|
}
|
|
private void btn_Home_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.attenuator.Home();
|
}
|
|
private void btn_Stop_Click(object sender, EventArgs e)
|
{
|
_mainFrame.equipment.attenuator.Stop();
|
}
|
|
private void tb_Speed_KeyDown(object sender, KeyEventArgs e)
|
{
|
if(e.KeyCode == Keys.Enter)
|
{
|
double speed;
|
if(double.TryParse(tb_Speed.Text, out speed))
|
{
|
int speedValue = _mainFrame.equipment.attenuator.GetSpeedFromDegreePerSecond(speed);
|
_mainFrame.equipment.attenuator.SetSpeed(speedValue);
|
}
|
}
|
}
|
|
private void cbb_Resolution_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
if (_mainFrame != null)
|
{
|
Attenuator.MicroSteppingResolution[] data = (Attenuator.MicroSteppingResolution[])Enum.GetValues(typeof(Attenuator.MicroSteppingResolution));
|
_mainFrame.equipment.attenuator.SetMicroSteppingResolution(data[cbb_Resolution.SelectedIndex]);
|
}
|
}
|
|
private void btn_AngleSet_Click(object sender, EventArgs e)
|
{
|
float angle;
|
|
if(float.TryParse(tb_AngleValue.Text, out angle))
|
{
|
_mainFrame.equipment.attenuator.MoveAbsolute(angle);
|
}
|
else
|
{
|
MessageBoxPad mbp = new MessageBoxPad("숫자값 을 입력해 주세요.");
|
mbp.Show();
|
}
|
}
|
}
|
}
|