using System;
|
using System.Threading;
|
using System.Windows.Forms;
|
using VirtualConveyor.Cache.Entity;
|
using VirtualConveyor.HeartBeat.Entity;
|
using VirtualConveyor.Properties;
|
using VirtualConveyor.Utils;
|
|
namespace VirtualConveyor.View.HeartBeat
|
{
|
public partial class HeartBeatForm : Form
|
{
|
private HeartBeatEntity HeartBeat;
|
|
public HeartBeatForm()
|
{
|
InitializeComponent();
|
HeartBeat = new HeartBeatEntity();
|
}
|
|
|
private Thread GetHeartBeatStateThread { get; set; }
|
|
private void HeartBeatForm_Load(object sender, EventArgs e)
|
{
|
CheckForIllegalCrossThreadCalls = false;
|
this.tbWPlcHeartBeat.DataBindings.Add("Text", HeartBeat, "WPlcHeartBeat");
|
this.tbWAlarmCode.DataBindings.Add("Text", HeartBeat, "WAlarmCode");
|
this.tbServerHeartBeat.DataBindings.Add("Text", HeartBeat, "ServerHeartBeat");
|
GetHeartBeatStateThread = new Thread(new ThreadStart(GetHeartBeatState));
|
ThreadHelper.StartThread(GetHeartBeatStateThread);
|
}
|
|
private void HeartBeatForm_FormClosing(object sender, FormClosingEventArgs e)
|
{
|
ThreadHelper.CloseThread(GetHeartBeatStateThread);
|
if(HeartBeat!= null)
|
{
|
HeartBeat.CloseWritePlcHeartBeatThread();
|
}
|
}
|
|
|
private void GetHeartBeatState()
|
{
|
var items = new string[]
|
{
|
HeartBeat.OpcReadItems.ServerHeartBeat// 1Srm编号
|
};
|
while (true)
|
{
|
try
|
{
|
var opcs = CacheEntity.OpcWcfServiceClient.ReadValues(items);
|
if (opcs == null || opcs.Length <= 0)
|
{
|
Thread.Sleep(1000);
|
continue;
|
}
|
var i = 0;
|
|
HeartBeat.ServerHeartBeat = bool.Parse(opcs[i++].ToString());
|
|
}
|
catch (Exception ex)
|
{
|
LogTextHelper.WriteLine(Resources.LogDir, "读取服务器心跳失败:{0}", ex.Message);
|
}
|
finally
|
{
|
Thread.Sleep(1000);
|
}
|
}
|
}
|
|
/// <summary>
|
/// 点击更改按钮触发的事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void button1_Click(object sender, EventArgs e)
|
{
|
HeartBeat.WAlarmCode = int.Parse(this.tbAlarm.Text.Trim());
|
|
}
|
|
|
}
|
}
|