You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
189 lines
5.0 KiB
189 lines
5.0 KiB
using Module.Common;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using System.Xml.Linq;
|
|
using Module.Plc.Profinet.Tool;
|
|
using Module.DB.Model;
|
|
|
|
namespace ChipGlueDeviceManager
|
|
{
|
|
public partial class FrmIOMonitor : Form
|
|
{
|
|
private delegate void PrintChartParamCallBack(); //委托事件
|
|
private PrintChartParamCallBack DgChartParamRealValue;
|
|
private bool IsPrintReadValue = true;
|
|
|
|
/// <summary>
|
|
/// 监控窗体类结构体
|
|
/// </summary>
|
|
public FrmIOMonitor()
|
|
{
|
|
InitializeComponent();
|
|
DgChartParamRealValue = new PrintChartParamCallBack(PrintRealValueChart); //展示实时值
|
|
}
|
|
|
|
/// <summary>
|
|
/// 画面加载事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void FrmIO_Load(object sender, EventArgs e)
|
|
{
|
|
Thread printRealValueThread = new Thread(StartPrintRealValue);
|
|
printRealValueThread.IsBackground = true;
|
|
printRealValueThread.Start();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 通道1的IO监控值
|
|
/// </summary>
|
|
private MonitorModel t1MonitorModel = null;
|
|
/// <summary>
|
|
/// 通道2的IO监控值
|
|
/// </summary>
|
|
private MonitorModel t2MonitorModel = null;
|
|
|
|
/// <summary>
|
|
/// 开始展示实时值线程方法
|
|
/// </summary>
|
|
private void StartPrintRealValue()
|
|
{
|
|
while (IsPrintReadValue)
|
|
{
|
|
if (this.IsHandleCreated)
|
|
{
|
|
this.BeginInvoke(DgChartParamRealValue, null);
|
|
}
|
|
|
|
#region 读IO值
|
|
t1MonitorModel = PublicParams.T1MonitorModel;
|
|
t2MonitorModel = PublicParams.T2MonitorModel;
|
|
#endregion 读IO值
|
|
|
|
Thread.Sleep(100);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 展示实时值
|
|
/// </summary>
|
|
private void PrintRealValueChart()
|
|
{
|
|
#region 显示IO值
|
|
if (t1MonitorModel != null)
|
|
{
|
|
//通道1 IO
|
|
var inputData = t1MonitorModel.InputData;
|
|
|
|
for (int i = 0; i < inputData.Count; i++)
|
|
{
|
|
var label = GetLabelControl("lbx" + i);
|
|
|
|
if (i == 27)
|
|
{
|
|
LabelStatus1Color(label, inputData[i]);
|
|
}
|
|
else
|
|
{
|
|
LabelStatusColor(label, inputData[i]);
|
|
}
|
|
|
|
}
|
|
|
|
var outputData = t1MonitorModel.OutputData;
|
|
|
|
for (int i = 0; i < outputData.Count; i++)
|
|
{
|
|
var label = GetLabelControl("lby" + i);
|
|
|
|
LabelStatusColor(label, outputData[i]);
|
|
}
|
|
}
|
|
if (t2MonitorModel != null)
|
|
{
|
|
//通道2 IO
|
|
var t2InputData = t2MonitorModel.InputData;
|
|
|
|
for (int i = 0; i < t2InputData.Count; i++)
|
|
{
|
|
var label = GetLabelControl("lblX" + i);
|
|
|
|
if (i == 27)
|
|
{
|
|
LabelStatus1Color(label, t2InputData[i]);
|
|
}
|
|
else
|
|
{
|
|
LabelStatusColor(label, t2InputData[i]);
|
|
}
|
|
}
|
|
|
|
|
|
var t2OutputData = t2MonitorModel.OutputData;
|
|
|
|
for (int i = 0; i < t2OutputData.Count; i++)
|
|
{
|
|
var label = GetLabelControl("lblY" + i);
|
|
|
|
LabelStatusColor(label, t2OutputData[i]);
|
|
}
|
|
}
|
|
|
|
#endregion 显示IO值
|
|
|
|
}
|
|
|
|
private void LabelStatusColor(Label lblColor, bool value)
|
|
{
|
|
if (lblColor == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (value)
|
|
{
|
|
lblColor.BackColor = PublicParams.buttonDownColor;
|
|
}
|
|
else
|
|
{
|
|
lblColor.BackColor = System.Drawing.SystemColors.ControlLight;
|
|
}
|
|
}
|
|
|
|
private void LabelStatus1Color(Label lblColor, bool value)
|
|
{
|
|
if (value)
|
|
{
|
|
lblColor.BackColor = Color.Red;
|
|
}
|
|
else
|
|
{
|
|
lblColor.BackColor = System.Drawing.SystemColors.ControlLight;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private Label GetLabelControl(string labelName)
|
|
{
|
|
var list = Controls.Find(labelName, true);
|
|
|
|
if (list.Length == 0)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
return (Label)list[0];
|
|
}
|
|
|
|
}
|
|
}
|