1
0
dc/MainForm.cs
13118993771@163.com 562bd7a7b8 新版
2023-02-23 11:33:23 +08:00

909 linhas
34 KiB
C#

Este ficheiro contém caracteres Unicode ambíguos

Este ficheiro contém caracteres Unicode que podem ser confundidos com outros caracteres. Se acha que é intencional, pode ignorar este aviso com segurança. Use o botão Revelar para os mostrar.

using Glorysoft.SECS.EQP;
using Glorysoft.SECS.EQP.Common;
using Glorysoft.SECS.EQP.Utilities;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
using Glorysoft.EAP.Core.Constant;
using ARI.EAP.HOST.SRD;
using Glorysoft.SECS.EQP.Commands;
using Glorysoft.SECS.EQP.Message;
using ARI.EAP.HOST.Common;
using System.Threading.Tasks;
using ARI.EAP.HOST.Utilities;
using ARI.EAP.HOST.MQ;
using Glorysoft.SECSwell;
using System.Data;
using ExcelDataReader;
using System.Threading;
namespace ARI.EAP.HOST
{
public partial class MainForm : Form
{
public static List<SECSContext> eqpContexts;
public static Scenario scenario;
public static Mq mq;
private string previousEditValue;
public MainForm()
{
InitializeComponent();
Configurations.conf = XmlSerializeUtil.Deserialize<Configurations>(File.ReadAllText(Constants.configuerPath));
eqpContexts = new List<SECSContext>();
mq = new Mq();
Global.MF = this;
}
private void MainForm_Load(object sender, EventArgs e)
{
this.ConnectStatus.Text = EquipmentStatus.EqConnectState;
this.MQStatus.Text = EquipmentStatus.MQstate;
this.Text = Configurations.conf.connectSetting.equipmentName1;
this.editIPaddress.Text = Configurations.conf.connectSetting.remoteIp;
this.editDeviceID.Text = Configurations.conf.connectSetting.deviceId;
this.editPort.Text = Configurations.conf.connectSetting.remotePort;
VIDLoad();
EquipmentStatus.EapState = RunState.Run;
this.Connect.PerformClick();
}
#region IP等设置输入相关验证
private void editIPaddress_KeyPress(object sender, KeyPressEventArgs e)
{
int kc = (int)e.KeyChar;
if ((kc < 48 || kc > 57) && kc != 8 && kc != 46)
{
e.Handled = true;
}
}
private void editDeviceID_KeyPress(object sender, KeyPressEventArgs e)
{
int kc = (int)e.KeyChar;
if ((kc < 48 || kc > 57) && kc != 8)
{
e.Handled = true;
}
}
private void editPort_KeyPress(object sender, KeyPressEventArgs e)
{
int kc = (int)e.KeyChar;
if ((kc < 48 || kc > 57) && kc != 8)
{
e.Handled = true;
}
}
private void editIPaddress_Leave(object sender, EventArgs e)
{
if (JudgeIPFormat(editIPaddress.Text) == true)
{
IPError.Visible = false;
}
else
{
IPError.Visible = true;
}
}
private void editDeviceID_Leave(object sender, EventArgs e)
{
if (JudgePortFormat(editDeviceID.Text) == true)
{
ErrorDeviceID.Visible = false;
}
else
{
ErrorDeviceID.Visible = true;
}
}
private void editPort_Leave(object sender, EventArgs e)
{
if (JudgePortFormat(editPort.Text) == true)
{
ErrorPort.Visible = false;
}
else
{
ErrorPort.Visible = true;
}
}
//IP地址合法性检测
public static bool JudgeIPFormat(string strJudgeString)
{
bool blnTest;
bool _Result = true;
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$");
blnTest = regex.IsMatch(strJudgeString);
if (blnTest == true)
{
string[] strTemp = strJudgeString.Split(new char[] { '.' }); // textBox1.Text.Split(new char[] { . });
int nDotCount = strTemp.Length - 1; //字符串中.的数量,若.的数量小于3则是非法的ip地址
if (3 == nDotCount)//判断字符串中.的数量
{
for (int i = 0; i < strTemp.Length; i++)
{
if (Convert.ToInt32(strTemp[i]) > 255)
{ //大于255则提示不符合IP格式
_Result = false;
}
}
}
else
{
_Result = false;
}
}
else
{//输入非数字则提示不符合IP格式
_Result = false;
}
return _Result;
}
//deviceID 和 Port 合法性检测
public static bool JudgePortFormat(string strJudgeString)
{
bool blnTest;
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("^[0-9]{1,5}$");
blnTest = regex.IsMatch(strJudgeString);
return blnTest;
}
#endregion
#region IP配置保存和取消
private void Save_Click(object sender, EventArgs e)
{
//配置出错时不进行保存
if (IPError.Visible == true || ErrorPort.Visible == true || ErrorDeviceID.Visible == true)
{
MessageBox.Show("Please check configuration", "NOTICE");
return;
}
Configurations.conf.connectSetting.deviceId = editDeviceID.Text;
Configurations.conf.connectSetting.remoteIp = editIPaddress.Text;
Configurations.conf.connectSetting.remotePort = editPort.Text;
XmlSerializeUtil.Serializer<Configurations>(Configurations.conf);
MessageBox.Show("Save Successful", "NOTICE");
}
private void Cancle_Click(object sender, EventArgs e)
{
this.editIPaddress.Text = Configurations.conf.connectSetting.remoteIp;
this.editDeviceID.Text = Configurations.conf.connectSetting.deviceId;
this.editPort.Text = Configurations.conf.connectSetting.remotePort;
IPError.Visible = false;
ErrorDeviceID.Visible = false;
ErrorPort.Visible = false;
}
#endregion
#region
private void Connect_Click(object sender, EventArgs e)
{
try
{
EquipmentStatus.initStatus = false;
if (SimulatorInfo.Instance.Context != null && SimulatorInfo.Instance.Context.IsConnected)
{
SimulatorInfo.Instance.Context.Close();
}
EquipmentStatus.EqConnectState = ConnectState.connecting;
ConnectThread();
}
catch(Exception ee)
{
MessageBox.Show(ee.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
LoggerService.SYSLogger.Error(ee);
}
}
private void Disconnect_Click(object sender, EventArgs e)
{
try
{
if (SimulatorInfo.Instance.Context != null && SimulatorInfo.Instance.Context.IsConnected)
{
SimulatorInfo.Instance.Context.Close();
}
}
catch (Exception ee)
{
MessageBox.Show(ee.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
LoggerService.SYSLogger.Error(ee);
}
}
#endregion
#region
private void S1F3Request_Click(object sender, EventArgs e)
{
if (this.ConnectStatus.Text != ConnectState.connected)
{
return;
}
Command.S1F3Command(null);
}
private void S5F3_Click(object sender, EventArgs e)
{
if (this.ConnectStatus.Text != ConnectState.connected)
{
return;
}
S5F3Item item = new S5F3Item();
if (EquipmentStatus.S5F3 == "AlarmDisable")
{
item.ALED = 128;
item.ALID = 0;
Command.S5F3Command(item, null);
}
else
{
item.ALED = 0;
item.ALID = 0;
Command.S5F3Command(item, null);
}
}
public void S5F3BottonUpdate(string name)
{
if (this.ConnectStatus.Text != ConnectState.connected)
{
return;
}
Action act = delegate
{
this.S5F3.Text = name;
};
this.BeginInvoke(act);
}
private void S5F5_Click(object sender, EventArgs e)
{
if (this.ConnectStatus.Text != ConnectState.connected)
{
return;
}
Command.S5F5Command();
}
private void S7F19_Click(object sender, EventArgs e)
{
if (this.ConnectStatus.Text != ConnectState.connected)
{
return;
}
Command.S7F19Command();
}
private void S2F13_Click(object sender, EventArgs e)
{
if (this.ConnectStatus.Text != ConnectState.connected)
{
return;
}
Command.S2F13Command();
}
private void Local_Click(object sender, EventArgs e)
{
if (this.ConnectStatus.Text != ConnectState.connected)
{
return;
}
try
{
S2F15Item item = new S2F15Item();
var content = Configurations.conf.commandContentCollection.findContent("S2F15_ControlState").content;
foreach (string value in content)
{
EC ec = new EC();
var ecv = Configurations.conf.sRDConfiguration.findEC(value);
ec.ECID = ecv.ecid;
item.ECs.Add(ec);
}
item.ECs[0].ECV = 4;
item.ECs[1].ECV = 4;
int tag = 1;
Command.S2F15Command(item, tag);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
LoggerService.SYSLogger.Error(ex.Message);
}
}
private void Remote_Click(object sender, EventArgs e)
{
if (this.ConnectStatus.Text != ConnectState.connected)
{
return;
}
try
{
S2F15Item item = new S2F15Item();
var content = Configurations.conf.commandContentCollection.findContent("S2F15_ControlState").content;
foreach (string value in content)
{
EC ec = new EC();
var ecv = Configurations.conf.sRDConfiguration.findEC(value);
ec.ECID = ecv.ecid;
item.ECs.Add(ec);
}
item.ECs[0].ECV = 5;
item.ECs[1].ECV = 5;
int tag = 1;
Command.S2F15Command(item, tag);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
LoggerService.SYSLogger.Error(ex.Message);
}
}
#endregion
#region
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (EquipmentStatus.EqConnectState.Equals(ConnectState.connected))
{
SimulatorInfo.Instance.Context.Close();
}
mq.Close();
EquipmentStatus.socketClient.Disconnected();
EquipmentStatus.EapState = RunState.Stop;
}
#endregion
#region log详细内容展示
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
string eventName, eventContent;
eventName = dataGridView1.CurrentRow.Cells[3].Value.ToString();
eventContent = dataGridView1.CurrentRow.Cells[4].Value.ToString();
LogForm LF = new LogForm(eventName, eventContent);
Task.Run(() =>
{
try
{
LF.ShowDialog();
}
finally
{
LF.Dispose();
}
});
}
private void dataGridView2_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
string eventContent, eventName;
eventContent = dataGridView2.CurrentRow.Cells[3].Value.ToString();
eventName = dataGridView2.CurrentRow.Cells[2].Value.ToString();
LogForm LF = new LogForm(eventName, eventContent);
Task.Run(() =>
{
try
{
LF.ShowDialog();
}
finally
{
LF.Dispose();
}
});
}
#endregion
#region
public void ConnectThread()
{
try
{
AppSettingsConf.Conf = JsonConvert.DeserializeObject<AppSettingsConf>(File.ReadAllText(ReCache.EapSettingsFilePath),
new JsonSerializerSettings() { StringEscapeHandling = StringEscapeHandling.EscapeNonAscii });
SimulatorInfo.Instance.Scenarios = Configurations.conf.scenarioCollection;
var eqpid = Configurations.conf.connectSetting.name;
SimulatorInfo.Instance.Context = new SECSContext(eqpid, (short)Convert.ToInt32(Configurations.conf.connectSetting.deviceId), Configurations.conf.connectSetting.remoteIp, Convert.ToInt32(Configurations.conf.connectSetting.remotePort));
SimulatorInfo.Instance.Context.Open();
}
catch (Exception ee)
{
LoggerService.SECSLogger.Error($"程序错误:{ee.Message}");
}
}
#endregion
#region log显示
/// <summary>
/// addlog 的摘要说明
/// {transfer:Receive or Send;
/// commandName:消息名称;
/// type: 0为Primary消息1为Secondary消息}
/// </summary>
public void addlog(SECSTransaction trans, string transfer, string commandName,int type)
{
string time = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string SxFy = (type == 0 ? $"S{trans.Primary.Stream}F{trans.Primary.Function}" : $"S{trans.Secondary.Stream}F{trans.Secondary.Function}");
Action act = delegate
{
int index = this.dataGridView1.Rows.Add();
this.dataGridView1.Rows[index].Cells[0].Value = time;
this.dataGridView1.Rows[index].Cells[1].Value = SxFy;
this.dataGridView1.Rows[index].Cells[2].Value = transfer;
this.dataGridView1.Rows[index].Cells[3].Value = commandName;
this.dataGridView1.Rows[index].Cells[4].Value = (type == 0 ? trans.Primary : trans.Secondary);
this.dataGridView1.FirstDisplayedScrollingRowIndex = this.dataGridView1.Rows.Count - 1;
//界面日志只保留一千行
if(this.dataGridView1.Rows.Count > 1000)
{
this.dataGridView1.Rows.RemoveAt(0);
}
};
this.BeginInvoke(act);
}
public void addMQlog(string time, string trans, string name,string content)
{
Action act = delegate
{
int index = this.dataGridView2.Rows.Add();
this.dataGridView2.Rows[index].Cells[0].Value = time;
this.dataGridView2.Rows[index].Cells[1].Value = trans;
this.dataGridView2.Rows[index].Cells[2].Value = name;
this.dataGridView2.Rows[index].Cells[3].Value = content;
this.dataGridView2.FirstDisplayedScrollingRowIndex = this.dataGridView2.Rows.Count - 1;
//界面日志只保留一千行
if (this.dataGridView2.Rows.Count > 1000)
{
this.dataGridView2.Rows.RemoveAt(0);
}
};
this.BeginInvoke(act);
}
#endregion
#region
public void ConnectStatusSet(string value)
{
Action act = delegate
{
this.ConnectStatus.Text = value;
};
this.BeginInvoke(act);
}
#endregion
#region MQ界面连接状态显示
public void MQConnectStatusSet(string value)
{
Action act = delegate
{
this.MQStatus.Text = value;
};
this.BeginInvoke(act);
}
#endregion
#region EAP界面各按钮接口
public void pushBotton(string buttonName)
{
try
{
ToolStripButton toolStripButton = null;
ToolStripMenuItem toolStripMenuItem = null;
if (buttonName.Equals("Connect"))
{
toolStripButton = (ToolStripButton)toolStrip1.Items.Find(buttonName, true)[0];
}
else
{
toolStripMenuItem = (ToolStripMenuItem)toolStrip1.Items.Find(buttonName, true)[0];
}
Action act = delegate
{
if (toolStripButton != null)
toolStripButton.PerformClick();
if (toolStripMenuItem != null)
toolStripMenuItem.PerformClick();
};
this.BeginInvoke(act);
}
catch(Exception e)
{
LoggerService.SYSLogger.Error(e);
}
}
#endregion
#region VID加载与保存
public void VIDLoad()
{
foreach(SV sv in Configurations.conf.sRDConfiguration.svs)
{
int index = this.dgv_sv.Rows.Add();
this.dgv_sv.Rows[index].Cells[0].Value = sv.svid;
this.dgv_sv.Rows[index].Cells[1].Value = sv.name;
this.dgv_sv.Rows[index].Cells[2].Value = sv.format;
this.dgv_sv.Rows[index].Cells[3].Value = sv.min;
this.dgv_sv.Rows[index].Cells[4].Value = sv.max;
this.dgv_sv.Rows[index].Cells[5].Value = sv.defaultValue;
this.dgv_sv.Rows[index].Cells[6].Value = sv.description;
}
foreach (DV dv in Configurations.conf.sRDConfiguration.dvs)
{
int index = this.dgv_dv.Rows.Add();
this.dgv_dv.Rows[index].Cells[0].Value = dv.dvid;
this.dgv_dv.Rows[index].Cells[1].Value = dv.name;
this.dgv_dv.Rows[index].Cells[2].Value = dv.format;
this.dgv_dv.Rows[index].Cells[3].Value = dv.min;
this.dgv_dv.Rows[index].Cells[4].Value = dv.max;
this.dgv_dv.Rows[index].Cells[5].Value = dv.defaultValue;
this.dgv_dv.Rows[index].Cells[6].Value = dv.description;
}
foreach (ECV ecv in Configurations.conf.sRDConfiguration.ecvs)
{
int index = this.dgv_ec.Rows.Add();
this.dgv_ec.Rows[index].Cells[0].Value = ecv.ecid;
this.dgv_ec.Rows[index].Cells[1].Value = ecv.name;
this.dgv_ec.Rows[index].Cells[2].Value = ecv.format;
this.dgv_ec.Rows[index].Cells[3].Value = ecv.min;
this.dgv_ec.Rows[index].Cells[4].Value = ecv.max;
this.dgv_ec.Rows[index].Cells[5].Value = ecv.defaultValue;
this.dgv_ec.Rows[index].Cells[6].Value = ecv.description;
}
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
var svs = new List<SV>();
var dvs = new List<DV>();
var ecvs = new List<ECV>();
foreach(DataGridViewRow row in dgv_sv.Rows)
{
SV sv = new SV();
if (row.Cells[0].Value != null)
sv.svid = uint.Parse(row.Cells[0].Value.ToString());
if (row.Cells[1].Value != null)
sv.name = row.Cells[1].Value.ToString();
if (row.Cells[2].Value != null)
sv.format = row.Cells[2].Value.ToString();
if (row.Cells[3].Value != null)
sv.min = row.Cells[3].Value.ToString();
if (row.Cells[4].Value != null)
sv.max = row.Cells[4].Value.ToString();
if (row.Cells[5].Value != null)
sv.defaultValue = row.Cells[5].Value.ToString();
if (row.Cells[6].Value != null)
sv.description = row.Cells[6].Value.ToString();
svs.Add(sv);
}
foreach (DataGridViewRow row in dgv_dv.Rows)
{
DV dv = new DV();
if (row.Cells[0].Value != null)
dv.dvid = uint.Parse(row.Cells[0].Value.ToString());
if (row.Cells[1].Value != null)
dv.name = row.Cells[1].Value.ToString();
if (row.Cells[2].Value != null)
dv.format = row.Cells[2].Value.ToString();
if (row.Cells[3].Value != null)
dv.min = row.Cells[3].Value.ToString();
if (row.Cells[4].Value != null)
dv.max = row.Cells[4].Value.ToString();
if (row.Cells[5].Value != null)
dv.defaultValue = row.Cells[5].Value.ToString();
if (row.Cells[6].Value != null)
dv.description = row.Cells[6].Value.ToString();
dvs.Add(dv);
}
foreach (DataGridViewRow row in dgv_ec.Rows)
{
ECV ecv = new ECV();
if (row.Cells[0].Value != null)
ecv.ecid = uint.Parse(row.Cells[0].Value.ToString());
if (row.Cells[1].Value != null)
ecv.name = row.Cells[1].Value.ToString();
if (row.Cells[2].Value != null)
ecv.format = row.Cells[2].Value.ToString();
if (row.Cells[3].Value != null)
ecv.min = row.Cells[3].Value.ToString();
if (row.Cells[4].Value != null)
ecv.max = row.Cells[4].Value.ToString();
if (row.Cells[5].Value != null)
ecv.defaultValue = row.Cells[5].Value.ToString();
if (row.Cells[6].Value != null)
ecv.description = row.Cells[6].Value.ToString();
ecvs.Add(ecv);
}
Configurations.conf.sRDConfiguration.svs = svs;
Configurations.conf.sRDConfiguration.dvs = dvs;
Configurations.conf.sRDConfiguration.ecvs = ecvs;
XmlSerializeUtil.Serializer<Configurations>(Configurations.conf);
MessageBox.Show("Save Successful", "NOTICE");
}
private void createSVToolStripMenuItem_Click(object sender, EventArgs e)
{
int index = this.dgv_sv.Rows.Add();
dgv_sv.FirstDisplayedScrollingRowIndex = index;
}
private void createDVToolStripMenuItem_Click(object sender, EventArgs e)
{
int index = this.dgv_dv.Rows.Add();
dgv_dv.FirstDisplayedScrollingRowIndex = index;
}
private void createECToolStripMenuItem_Click(object sender, EventArgs e)
{
int index = this.dgv_ec.Rows.Add();
dgv_ec.FirstDisplayedScrollingRowIndex = index;
}
private void dgv_sv_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
previousEditValue = "";
if (this.dgv_sv.CurrentCell.Value != null)
{
previousEditValue = this.dgv_sv.CurrentCell.Value.ToString();
}
}
private void dgv_dv_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
previousEditValue = "";
if (this.dgv_dv.CurrentCell.Value != null)
{
previousEditValue = this.dgv_dv.CurrentCell.Value.ToString();
}
}
private void dgv_ec_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
previousEditValue = "";
if (this.dgv_ec.CurrentCell.Value != null)
{
previousEditValue = this.dgv_ec.CurrentCell.Value.ToString();
}
}
private void dgv_sv_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (this.dgv_sv.CurrentCell.ColumnIndex == 0)
{
if(this.dgv_sv.CurrentCell.Value == null || dgv_sv.CurrentCell.Value.ToString() == "")
{
this.dgv_sv.CurrentCell.Value = previousEditValue;
dgv_sv.CancelEdit();
return;
}
foreach (DataGridViewRow row in dgv_sv.Rows)
{
if (row.Index == this.dgv_sv.CurrentCell.RowIndex)
continue;
if (row.Cells[0].Value.ToString() == this.dgv_sv.CurrentCell.Value.ToString())
{
MessageBox.Show("VID重复");
this.dgv_sv.CurrentCell.Value = previousEditValue;
dgv_sv.CancelEdit();
return;
}
}
foreach (DataGridViewRow row in dgv_dv.Rows)
{
if (row.Cells[0].Value.ToString() == this.dgv_sv.CurrentCell.Value.ToString())
{
MessageBox.Show("VID重复");
this.dgv_sv.CurrentCell.Value = previousEditValue;
dgv_sv.CancelEdit();
return;
}
}
foreach (DataGridViewRow row in dgv_ec.Rows)
{
if (row.Cells[0].Value.ToString() == this.dgv_sv.CurrentCell.Value.ToString())
{
MessageBox.Show("VID重复");
this.dgv_sv.CurrentCell.Value = previousEditValue;
dgv_sv.CancelEdit();
return;
}
}
}
}
private void dgv_dv_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (this.dgv_dv.CurrentCell.ColumnIndex == 0)
{
if (this.dgv_dv.CurrentCell.Value == null || dgv_dv.CurrentCell.Value.ToString() == "")
{
this.dgv_dv.CurrentCell.Value = previousEditValue;
dgv_dv.CancelEdit();
return;
}
foreach (DataGridViewRow row in dgv_sv.Rows)
{
if (row.Cells[0].Value.ToString() == this.dgv_dv.CurrentCell.Value.ToString())
{
MessageBox.Show("VID重复");
this.dgv_dv.CurrentCell.Value = previousEditValue;
dgv_dv.CancelEdit();
return;
}
}
foreach (DataGridViewRow row in dgv_dv.Rows)
{
if (row.Index == this.dgv_dv.CurrentCell.RowIndex)
continue;
if (row.Cells[0].Value.ToString() == this.dgv_dv.CurrentCell.Value.ToString())
{
MessageBox.Show("VID重复");
this.dgv_dv.CurrentCell.Value = previousEditValue;
dgv_dv.CancelEdit();
return;
}
}
foreach (DataGridViewRow row in dgv_ec.Rows)
{
if (row.Cells[0].Value.ToString() == this.dgv_dv.CurrentCell.Value.ToString())
{
MessageBox.Show("VID重复");
this.dgv_dv.CurrentCell.Value = previousEditValue;
dgv_dv.CancelEdit();
return;
}
}
}
}
private void dgv_ec_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (this.dgv_ec.CurrentCell.ColumnIndex == 0)
{
if (this.dgv_ec.CurrentCell.Value == null || dgv_ec.CurrentCell.Value.ToString() == "")
{
this.dgv_ec.CurrentCell.Value = previousEditValue;
dgv_ec.CancelEdit();
return;
}
foreach (DataGridViewRow row in dgv_sv.Rows)
{
if (row.Cells[0].Value.ToString() == this.dgv_ec.CurrentCell.Value.ToString())
{
MessageBox.Show("VID重复");
this.dgv_ec.CurrentCell.Value = previousEditValue;
dgv_ec.CancelEdit();
return;
}
}
foreach (DataGridViewRow row in dgv_dv.Rows)
{
if (row.Cells[0].Value.ToString() == this.dgv_ec.CurrentCell.Value.ToString())
{
MessageBox.Show("VID重复");
this.dgv_ec.CurrentCell.Value = previousEditValue;
dgv_ec.CancelEdit();
return;
}
}
foreach (DataGridViewRow row in dgv_ec.Rows)
{
if (row.Index == this.dgv_ec.CurrentCell.RowIndex)
continue;
if (row.Cells[0].Value.ToString() == this.dgv_ec.CurrentCell.Value.ToString())
{
MessageBox.Show("VID重复");
this.dgv_ec.CurrentCell.Value = previousEditValue;
dgv_ec.CancelEdit();
return;
}
}
}
}
#endregion
private void TabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if(this.TabControl1.SelectedIndex == 1)
{
this.editIPaddress.Text = Configurations.conf.connectSetting.remoteIp;
this.editDeviceID.Text = Configurations.conf.connectSetting.deviceId;
this.editPort.Text = Configurations.conf.connectSetting.remotePort;
IPError.Visible = false;
ErrorDeviceID.Visible = false;
ErrorPort.Visible = false;
}
else if(this.TabControl1.SelectedIndex == 2)
{
this.dgv_sv.Rows.Clear();
this.dgv_dv.Rows.Clear();
this.dgv_ec.Rows.Clear();
VIDLoad();
}
}
#region VID删除
private void deleteSVToolStripMenuItem1_Click(object sender, EventArgs e)
{
this.dgv_sv.Rows.Remove(this.dgv_sv.CurrentRow);
}
private void deleteDVToolStripMenuItem_Click(object sender, EventArgs e)
{
this.dgv_dv.Rows.Remove(this.dgv_dv.CurrentRow);
}
private void deleteECVToolStripMenuItem_Click(object sender, EventArgs e)
{
this.dgv_ec.Rows.Remove(this.dgv_ec.CurrentRow);
}
#endregion
private void s1F1ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.s1F1ToolStripMenuItem.Checked)
{
EquipmentStatus.S1F1FuntionStatus = true;
}
else
{
EquipmentStatus.S1F1FuntionStatus = false;
}
}
private void importDVListToolStripMenuItem_Click(object sender, EventArgs e)
{
using (var openFileDialog = new OpenFileDialog { Filter = @"Excel表格|*.xlsx|Excel|*.xls" })
{
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
using (var stream = File.Open(openFileDialog.FileName, FileMode.Open, FileAccess.Read))
{
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
DataSet result = reader.AsDataSet();
DataTable dt = result.Tables[0];
foreach(DataRow row in dt.Rows)
{
int index = this.dgv_dv.Rows.Add();
this.dgv_dv.Rows[index].Cells[0].Value = row[0];
this.dgv_dv.Rows[index].Cells[1].Value = row[1];
this.dgv_dv.Rows[index].Cells[2].Value = row[2];
this.dgv_dv.Rows[index].Cells[3].Value = row[3];
this.dgv_dv.Rows[index].Cells[4].Value = row[4];
this.dgv_dv.Rows[index].Cells[5].Value = row[5];
this.dgv_dv.Rows[index].Cells[6].Value = row[6];
}
}
}
}
}
}
}
public static class Global
{
public static MainForm MF{get;set;}
}
}