CRVM-redis-6/Host/SetAlarmForm.cs
2025-11-07 02:02:31 +08:00

230 lines
10 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using CRVM.Entity;
using System.Text.RegularExpressions;
using CRVM.SIDExcuter;
namespace CRVM
{
public partial class SetAlarmForm : Form
{
public EntityAlarmSpeed[][] eass;
bool dataChanged = false;
public SetAlarmForm()
{
InitializeComponent();
}
private void Parameterforalarm_new_Load(object sender, EventArgs e)
{
dataGridView1.Columns[0].ValueType = typeof(Int32);
eass = new EntityAlarmSpeed[SysParam.Instance.channelCount][];
comboBox1.SelectedIndex = 0;
dataChanged = false;
SetDgvSort();
}
private void SetDgvSort()
{
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
}
}
private void InitialDisplay()
{
dataGridView1.Rows.Clear();
EntityAlarmSpeed[] aat = SysParam.Instance.channel[comboBox1.SelectedIndex].alarmConfig;
textBox1.Text = SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_l.ToString();
textBox2.Text = SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_m.ToString();
textBox3.Text = SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_h.ToString();
for (int i = 0; i < aat.Length; i++)
{
if (aat[i] != null)
{
dataGridView1.Rows.Add(1);
dataGridView1.Rows[i].Cells[0].Value = aat[i].alarmSpeed;
dataGridView1.Rows[i].Cells[1].Value = aat[i].lowPassL;
dataGridView1.Rows[i].Cells[2].Value = aat[i].lowPassU;
dataGridView1.Rows[i].Cells[3].Value = aat[i].lowAlarmValue;
dataGridView1.Rows[i].Cells[4].Value = aat[i].lowDefectValue;
dataGridView1.Rows[i].Cells[5].Value = aat[i].midPassL;
dataGridView1.Rows[i].Cells[6].Value = aat[i].midPassU;
dataGridView1.Rows[i].Cells[7].Value = aat[i].midAlarmValue;
dataGridView1.Rows[i].Cells[8].Value = aat[i].midDefectValue;
dataGridView1.Rows[i].Cells[9].Value = aat[i].highPassL;
dataGridView1.Rows[i].Cells[10].Value = aat[i].highPassU;
dataGridView1.Rows[i].Cells[11].Value = aat[i].highAlarmValue;
dataGridView1.Rows[i].Cells[12].Value = aat[i].highDefectValue;
}
}
}
private void btnAdd_Click(object sender, EventArgs e)
{
this.dataGridView1.Rows.Add();
}
private void btnDel_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count <= 0)
{
MessageBox.Show("请选择要删除的行!");
return;
}
else
{
dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
}
}
private void btnClose_Click(object sender, EventArgs e)
{
//RefreshOneChannelData();
if (dataChanged)
{
ConfigHelper.GetInstance("").SaveConfig(Application.StartupPath);
string path = Application.StartupPath + "\\AlarmConfig\\" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".config";
ConfigHelper.GetInstance("").SaveAlarmConfig(path);
ConfigHelper.GetInstance("").SaveConfig(Application.StartupPath + "\\AppSetting.config");
}
this.Close();
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
InitialDisplay();
}
private void btnStore_Click(object sender, EventArgs e)
{
RefreshOneChannelData();
}
private void RefreshOneChannelData()
{
dataGridView1.Sort(dataGridView1.Columns[0], System.ComponentModel.ListSortDirection.Ascending);
IList<EntityAlarmSpeed> ll = new List<EntityAlarmSpeed>();
EntityAlarmSpeed[] ieass = new EntityAlarmSpeed[dataGridView1.Rows.Count];
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
EntityAlarmSpeed eas = new EntityAlarmSpeed();
eas.alarmSpeed = Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value);
eas.lowPassL = Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value);
eas.lowPassU = Convert.ToInt32(dataGridView1.Rows[i].Cells[2].Value);
eas.lowAlarmValue = Convert.ToSingle(dataGridView1.Rows[i].Cells[3].Value);
eas.lowDefectValue = Convert.ToSingle(dataGridView1.Rows[i].Cells[4].Value);
if (eas.lowAlarmValue > eas.lowDefectValue)
{
MessageBox.Show("第" + (i + 1) + "行!\n\r不允许中频报警值低于中频缺陷值\n\r请重新设定", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
eas.midPassL = Convert.ToInt32(dataGridView1.Rows[i].Cells[5].Value);
eas.midPassU = Convert.ToInt32(dataGridView1.Rows[i].Cells[6].Value);
eas.midAlarmValue = Convert.ToSingle(dataGridView1.Rows[i].Cells[7].Value);
eas.midDefectValue = Convert.ToSingle(dataGridView1.Rows[i].Cells[8].Value);
if (eas.midAlarmValue > eas.midDefectValue)
{
MessageBox.Show("第" + (i + 1) + "行!\n\r不允许中频报警值低于中频缺陷值\n\r请重新设定", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
eas.highPassL = Convert.ToInt32(dataGridView1.Rows[i].Cells[9].Value);
eas.highPassU = Convert.ToInt32(dataGridView1.Rows[i].Cells[10].Value);
eas.highAlarmValue = Convert.ToSingle(dataGridView1.Rows[i].Cells[11].Value);
eas.highDefectValue = Convert.ToSingle(dataGridView1.Rows[i].Cells[12].Value);
if (eas.highAlarmValue > eas.highDefectValue)
{
MessageBox.Show("第" + (i + 1) + "行!\n\r不允许中频报警值低于中频缺陷值\n\r请重新设定", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
ieass[i] = eas;
ll.Add(eas);
}
eass[comboBox1.SelectedIndex] = ieass;
ConfigHelper.GetInstance("").SaveBaseData(comboBox1.SelectedIndex, ll);
DbHelper.GetInstance("").UpdateAlarmParamByStandNo(ll, comboBox1.SelectedIndex + 1);//更新数据库
SysParam.Instance.channel[comboBox1.SelectedIndex].alarmConfig = ieass;
string pattern = @"^[1-9]\d*$";
if (Regex.IsMatch(textBox1.Text, pattern))
{
SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_l = Convert.ToInt32(textBox1.Text.Trim());
}
else
{
textBox1.Text = SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_l.ToString();
MessageBox.Show("参数:低频报警触发次数,必须为正整数!");
return;
}
if (Regex.IsMatch(textBox2.Text, pattern))
{
SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_m = Convert.ToInt32(textBox2.Text.Trim());
}
else
{
textBox2.Text = SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_m.ToString();
MessageBox.Show("参数:中频报警触发次数,必须为正整数!");
return;
}
if (Regex.IsMatch(textBox3.Text, pattern))
{
SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_h = Convert.ToInt32(textBox3.Text.Trim());
}
else
{
textBox3.Text = SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_h.ToString();
MessageBox.Show("参数:高频报警触发次数,必须为正整数!");
return;
}
DbHelper.GetInstance("").UpdateAlarmTimes(comboBox1.SelectedIndex + 1,
SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_l,
SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_m,
SysParam.Instance.channel[comboBox1.SelectedIndex].alarmTimes_h);
dataChanged = true;
}
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (e.RowIndex > -1 && e.ColumnIndex > -1)
{
DataGridView grid = (DataGridView)sender;
grid.Rows[e.RowIndex].ErrorText = "";
if (e.ColumnIndex == 3 || e.ColumnIndex == 4 || e.ColumnIndex == 7 || e.ColumnIndex == 8 || e.ColumnIndex == 11 || e.ColumnIndex == 12)
{
float newFloat = 0;
if (!float.TryParse(e.FormattedValue.ToString(), out newFloat))
{
e.Cancel = true;
grid.Rows[e.RowIndex].ErrorText = "请输入一个数字!";
MessageBox.Show("输入的值不是一个数字,请重新输入!");
return;
}
}
else
{
Int32 newInt32 = 0;
if (!Int32.TryParse(e.FormattedValue.ToString(), out newInt32))
{
e.Cancel = true;
grid.Rows[e.RowIndex].ErrorText = "请输入一个正整数!";
MessageBox.Show("输入的值不是一个正整数,请重新输入!");
return;
}
}
}
}
}
}