using DIT.Framework.Module;
|
|
using System;
|
using System.Drawing;
|
using System.Threading;
|
using System.Windows.Forms;
|
|
namespace DLL_Test_Program
|
{
|
public partial class Ophir_StarBright_Form : Form
|
{
|
public Ophir_StarBright_Form()
|
{
|
InitializeComponent();
|
Port_Set();
|
count = 0;
|
AutoCheckRun = false;
|
}
|
delegate void DelUpdateData();
|
|
Ophir_StarBright Ophir;
|
Thread UpdateUITh;
|
Thread UpdateDataTh;
|
bool AutoCheckRun;
|
int count;
|
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);
|
}
|
|
private void ThreadInit()
|
{
|
UpdateUITh = new Thread(Update_UI);
|
}
|
|
private void ThreadStart()
|
{
|
UpdateUITh.Start();
|
}
|
|
private void Update_UI()
|
{
|
while (Ophir.isOpen)
|
{
|
lock (this)
|
{
|
Thread.Sleep(100);
|
Application.DoEvents();
|
try
|
{
|
if (InvokeRequired)
|
{
|
BeginInvoke(new UpdateUIDelegate(Update_UI));
|
return;
|
}
|
|
if(Ophir.isOpen)
|
{
|
lb_PortState.Text = "Connected";
|
lb_PortState.BackColor = Color.Lime;
|
btn_PortClose.Enabled = true;
|
btn_PortOpen.Enabled = false;
|
}
|
else
|
{
|
lb_PortState.Text = "Disconnect";
|
lb_PortState.BackColor = Color.Red;
|
btn_PortClose.Enabled = false;
|
btn_PortOpen.Enabled = true;
|
}
|
tb_Flag.Text = Ophir.Flag.ToString();
|
tb_Energy.Text = Ophir.Energy.ToString();
|
tb_Count.Text = $"count";
|
|
}
|
catch (Exception)
|
{
|
|
}
|
}
|
}
|
}
|
|
public void Update_Data()
|
{
|
try
|
{
|
if (InvokeRequired)
|
{
|
BeginInvoke(new DelUpdateData(Update_Data));
|
return;
|
}
|
else
|
{
|
if (Ophir.Read_Flag())
|
{
|
count++;
|
Ophir.Read_Energy();
|
}
|
}
|
}
|
catch (Exception)
|
{
|
|
}
|
}
|
|
private void btn_PortOpen_Click(object sender, System.EventArgs e)
|
{
|
string port = cbb_Ports.SelectedItem.ToString();
|
Ophir = new Ophir_StarBright(port, 115200);
|
Ophir.Open();
|
ThreadInit();
|
ThreadStart();
|
}
|
|
private void btn_PortClose_Click(object sender, System.EventArgs e)
|
{
|
Ophir.Close();
|
}
|
|
private void btn_ReadFlag_Click(object sender, EventArgs e)
|
{
|
Ophir.Read_Flag();
|
}
|
|
private void btn_ReadEnergy_Click(object sender, EventArgs e)
|
{
|
Ophir.Read_Energy();
|
}
|
|
private void cb_ThreadStart_CheckedChanged(object sender, EventArgs e)
|
{
|
CheckBox check = (CheckBox)sender;
|
if (check.Checked) { AutoCheckRun = true; UpdateDataTh = new Thread(() => { while (AutoCheckRun) { try { Thread.Sleep((int)(nud_CheckTime.Value)); while ((int)(nud_CheckTime.Value) > 100) { } Update_Data(); } catch (Exception) { } } }); UpdateDataTh.Start(); }
|
else { AutoCheckRun = false; }
|
}
|
|
|
private void Ophir_StarBright_Form_FormClosing(object sender, FormClosingEventArgs e)
|
{
|
if (Ophir == null) return;
|
|
Ophir.Close();
|
}
|
|
private void btn_SetEnergy_Click(object sender, EventArgs e)
|
{
|
Ophir.Set_Measurement_Mode(3);
|
}
|
|
private void btn_SetPower_Click(object sender, EventArgs e)
|
{
|
Ophir.Set_Measurement_Mode(2);
|
}
|
}
|
}
|