using DIT.Framework.Module;
|
|
using System.Windows.Forms;
|
using System.Threading;
|
using System;
|
using System.Drawing;
|
|
namespace DLL_Test_Program
|
{
|
delegate void UpdateUIDelegate();
|
public partial class Autonics_PMC_2HS_Form : Form
|
{
|
public Autonics_PMC_2HS_Form()
|
{
|
InitializeComponent();
|
Port_Set();
|
}
|
|
#region Member
|
Autonics_PMC_2HS autonics;
|
Thread UpdateUITh;
|
Thread UpdateDataTh;
|
#endregion
|
|
#region Thread
|
private void ThreadInit()
|
{
|
UpdateUITh = new Thread(Update_UI);
|
UpdateDataTh = new Thread(Update_Data);
|
}
|
|
private void ThreadStart()
|
{
|
UpdateUITh.Start();
|
UpdateDataTh.Start();
|
}
|
|
private void ThreadEnd()
|
{
|
UpdateUITh.Abort();
|
UpdateDataTh.Abort();
|
}
|
|
private void Update_UI()
|
{
|
while (autonics.isOpen)
|
{
|
lock (this)
|
{
|
Thread.Sleep(10);
|
|
try
|
{
|
if (InvokeRequired)
|
{
|
BeginInvoke(new UpdateUIDelegate(Update_UI));
|
return;
|
}
|
|
ChangeXStatus();
|
ChangeYStatus();
|
ChangeParallelStatus();
|
|
ChangeCurPosStatus();
|
ChageCurSpdStatus();
|
|
lb_PortState.BackColor = autonics.isOpen ? Color.Lime : Color.Red;
|
lb_PortState.Text = autonics.isOpen ? "Connected" : "Disconnect";
|
}
|
catch (Exception)
|
{
|
|
}
|
}
|
}
|
}
|
|
public void Update_Data()
|
{
|
while (autonics.isOpen)
|
{
|
Thread.Sleep(10);
|
lock (this)
|
{
|
try
|
{
|
autonics.Request_State_X();
|
autonics.Request_State_Y();
|
autonics.Request_Error_X();
|
autonics.Request_Error_Y();
|
autonics.Request_Pos();
|
autonics.Request_Speed();
|
}
|
catch (Exception)
|
{
|
|
}
|
}
|
}
|
}
|
|
public void ChangeXStatus()
|
{
|
lb_CN4_Out0.BackColor = autonics.Status_X.OUT0 ? Color.Lime : Color.Red;
|
lb_CN4_Limit_P.BackColor = autonics.Status_X.Lmt_Plus ? Color.Lime : Color.Red;
|
lb_CN4_Limit_M.BackColor = autonics.Status_X.Lmt_Minus ? Color.Lime : Color.Red;
|
lb_CN4_EMG.BackColor = autonics.Status_X.EMG ? Color.Lime : Color.Red;
|
lb_CN4_Stop2.BackColor = autonics.Status_X.Stop2 ? Color.Lime : Color.Red;
|
lb_CN4_Stop1.BackColor = autonics.Status_X.Stop1 ? Color.Lime : Color.Red;
|
lb_CN4_Stop0.BackColor = autonics.Status_X.Stop0 ? Color.Lime : Color.Red;
|
lb_CN4_Inpos.BackColor = autonics.Status_X.Inpos ? Color.Lime : Color.Red;
|
lb_CN4_Alarm.BackColor = autonics.Status_X.Alarm ? Color.Lime : Color.Red;
|
}
|
|
public void ChangeYStatus()
|
{
|
lb_CN5_Out0.BackColor = autonics.Status_Y.OUT0 ? Color.Lime : Color.Red;
|
lb_CN5_Limit_P.BackColor = autonics.Status_Y.Lmt_Plus ? Color.Lime : Color.Red;
|
lb_CN5_Limit_M.BackColor = autonics.Status_Y.Lmt_Minus ? Color.Lime : Color.Red;
|
lb_CN5_EMG.BackColor = autonics.Status_Y.EMG ? Color.Lime : Color.Red;
|
lb_CN5_Stop2.BackColor = autonics.Status_Y.Stop2 ? Color.Lime : Color.Red;
|
lb_CN5_Stop1.BackColor = autonics.Status_Y.Stop1 ? Color.Lime : Color.Red;
|
lb_CN5_Stop0.BackColor = autonics.Status_Y.Stop0 ? Color.Lime : Color.Red;
|
lb_CN5_Inpos.BackColor = autonics.Status_Y.Inpos ? Color.Lime : Color.Red;
|
lb_CN5_Alarm.BackColor = autonics.Status_Y.Alarm ? Color.Lime : Color.Red;
|
}
|
|
public void ChangeParallelStatus()
|
{
|
lb_CN3_Home.BackColor = autonics.Status_Parallel.Home ? Color.Lime : Color.Red;
|
lb_CN3_Strobe.BackColor = autonics.Status_Parallel.Strobe ? Color.Lime : Color.Red;
|
lb_CN3_X.BackColor = autonics.Status_Parallel.X ? Color.Lime : Color.Red;
|
lb_CN3_Y.BackColor = autonics.Status_Parallel.Y ? Color.Lime : Color.Red;
|
lb_CN3_RegSL0.BackColor = autonics.Status_Parallel.RegSL0 ? Color.Lime : Color.Red;
|
lb_CN3_RegSL1.BackColor = autonics.Status_Parallel.RegSL1 ? Color.Lime : Color.Red;
|
lb_CN3_RegSL2.BackColor = autonics.Status_Parallel.RegSL2 ? Color.Lime : Color.Red;
|
lb_CN3_RegSL3.BackColor = autonics.Status_Parallel.RegSL3 ? Color.Lime : Color.Red;
|
lb_CN3_RegSL4.BackColor = autonics.Status_Parallel.RegSL4 ? Color.Lime : Color.Red;
|
lb_CN3_RegSL5.BackColor = autonics.Status_Parallel.RegSL5 ? Color.Lime : Color.Red;
|
lb_CN3_Mode0.BackColor = autonics.Status_Parallel.Mode0 ? Color.Lime : Color.Red;
|
lb_CN3_Mode1.BackColor = autonics.Status_Parallel.Mode1 ? Color.Lime : Color.Red;
|
lb_CN3_X_Drive.BackColor = autonics.Status_X.DRIVE ? Color.Lime : Color.Red;
|
lb_CN3_Y_Drive.BackColor = autonics.Status_Y.DRIVE ? Color.Lime : Color.Red;
|
lb_CN3_X_Error.BackColor = autonics.Status_X.ERROR ? Color.Lime : Color.Red;
|
lb_CN3_Y_Error.BackColor = autonics.Status_Y.ERROR ? Color.Lime : Color.Red;
|
}
|
|
public void ChangeCurPosStatus()
|
{
|
tb_Current_X_Pos.Text = autonics.PosX.ToString();
|
tb_Current_Y_Pos.Text = autonics.PosY.ToString();
|
}
|
|
public void ChageCurSpdStatus()
|
{
|
tb_Current_X_Speed.Text = autonics.SpeedX.ToString();
|
tb_Current_Y_Speed.Text = autonics.SpeedY.ToString();
|
}
|
#endregion
|
|
#region Function
|
/// <summary>
|
/// Serial Port 설정
|
/// </summary>
|
private void Port_Set()
|
{
|
string[] ports = SerialModule.GetPorts();
|
|
if (ports == null)
|
return;
|
|
cbb_Ports.Items.Clear();
|
|
foreach (string port in ports)
|
cbb_Ports.Items.Add(port);
|
}
|
|
#endregion
|
|
#region Button Event
|
private void btn_PortOpen_Click(object sender, System.EventArgs e)
|
{
|
string port = cbb_Ports.SelectedItem.ToString();
|
autonics = new Autonics_PMC_2HS(port, 9600);
|
autonics.Open();
|
ThreadInit();
|
ThreadStart();
|
}
|
|
private void btn_PortClose_Click(object sender, EventArgs e)
|
{
|
autonics.Close();
|
}
|
|
private void btn_Cur_X_Pos_Clr_Click(object sender, EventArgs e)
|
{
|
autonics.X_Pos_Clear();
|
}
|
|
private void btn_Cur_Y_Pos_Clr_Click(object sender, EventArgs e)
|
{
|
autonics.Y_Pos_Clear();
|
}
|
|
private void btn_X_Home_Click(object sender, EventArgs e)
|
{
|
autonics.Home_X_Stop();
|
}
|
|
private void btn_Y_Home_Click(object sender, EventArgs e)
|
{
|
autonics.Home_Y();
|
}
|
|
private void btn_X_Stop_Click(object sender, EventArgs e)
|
{
|
autonics.Home_X_Stop();
|
}
|
|
private void btn_Y_Stop_Click(object sender, EventArgs e)
|
{
|
autonics.Home_Y_Stop();
|
}
|
|
private void btn_X_Plus_Click(object sender, EventArgs e)
|
{
|
if (!rb_Motor_Scan.Checked)
|
{
|
autonics.Move_X_Plus();
|
}
|
}
|
|
private void btn_Y_Plus_Click(object sender, EventArgs e)
|
{
|
if (!rb_Motor_Scan.Checked)
|
{
|
autonics.Move_Y_Plus();
|
}
|
}
|
|
private void btn_X_Minus_Click(object sender, EventArgs e)
|
{
|
if (!rb_Motor_Scan.Checked)
|
{
|
autonics.Move_X_Minus();
|
}
|
}
|
|
private void btn_Y_Minus_Click(object sender, EventArgs e)
|
{
|
if (!rb_Motor_Scan.Checked)
|
{
|
autonics.Move_Y_Minus();
|
}
|
}
|
|
private void btn_X_Home_Stop_Click(object sender, EventArgs e)
|
{
|
autonics.Home_X();
|
}
|
|
private void btn_Y_Home_Stop_Click(object sender, EventArgs e)
|
{
|
autonics.Home_Y_Stop();
|
}
|
|
private void btn_X_Setting_Apply_Click(object sender, EventArgs e)
|
{
|
int value = (int)nud_X_Speed.Value;
|
autonics.Set_Speed_X(value);
|
}
|
|
private void btn_Y_Setting_Apply_Click(object sender, EventArgs e)
|
{
|
int value = int.Parse(tb_Y_Move.Text);
|
|
autonics.Move_Y_ABS(value);
|
}
|
|
private void btn_X_Preset_Move_Click(object sender, EventArgs e)
|
{
|
int value = int.Parse(tb_X_Move.Text);
|
|
autonics.Move_X_ABS(value);
|
}
|
|
private void btn_Y_Preset_Move_Click(object sender, EventArgs e)
|
{
|
int value = (int)nud_Y_Speed.Value;
|
autonics.Set_Speed_Y(value);
|
}
|
|
private void rb_Speed_CheckedChanged(object sender, EventArgs e)
|
{
|
RadioButton rb = (RadioButton)sender;
|
|
switch (int.Parse(rb.Text))
|
{
|
case 1:
|
case 2:
|
case 3:
|
case 4:
|
autonics.Speed_Setting(int.Parse(rb.Text));
|
break;
|
case 5:
|
autonics.Speed_Setting(int.Parse(rb.Text));
|
autonics.Speed_Setting((int)nud_X_Speed.Value, (int)nud_Y_Speed.Value);
|
break;
|
}
|
}
|
#endregion
|
|
#region Form Event
|
private void Autonics_PMC_2HS_Form_FormClosing(object sender, FormClosingEventArgs e)
|
{
|
if (autonics == null) return;
|
|
autonics.Close();
|
}
|
#endregion
|
}
|
}
|