using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using SunVote; using System.Text.RegularExpressions; using GeneralLib; namespace SunVoteARSPPT { public partial class FrmDeviceSet : Form { private int oldBaseID; //原频点 private int oldChannel; //原IP地址 private string oldIPAddress; //关闭界面是否需要刷新(更改IP地址,启用状态,或者断开连接) private bool NeedRefresh; public FrmDeviceSet() { InitializeComponent(); //发送命令的间隔时间要比SDK执行时间长,否则会卡死 GlobalInfo.baseConnect.ConnectStatusEvent += new ConnectStatusEvent(ConnectStatusEventHander); GlobalInfo.hardwareManage.BaseConfigEvent += new BaseConfigEvent(BaseConfigEventHander); GlobalInfo.hardwareManage.BaseModelInfoEvent += new BaseModelInfoEvent(BaseModelEventHander); GlobalInfo.hardwareManage.BaseIPAddressEvent += new BaseIPAddressEvent(BaseIPAddressHander); GlobalInfo.hardwareManage.HardwareMonitorEvent += new HardwareMonitorEvent(HardwareMonitorEventHander); //GlobalInfo.hardwareManage.KeyMonitorStatusEvent += new KeyMonitorStatusEvent(hardwareManage_KeyMonitorStatusEvent); GlobalInfo.hardwareManage.KeyModelInfoEvent += new KeyModelInfoEvent(KeyModelInfoEventHander); GlobalInfo.hardwareManage.ReadOnlyEvent += new ReadOnlyEvent(hardwareManage_ReadOnlyEvent); GlobalInfo.baseConnect.ResponseStateEvent += new ResponseStateEventHander(baseConnect_ResponseStateEvent); } void baseConnect_ResponseStateEvent(bool isResponse) { //读基站信息或者设置基站信息时,不允许读键盘信息 btnKeypadInfoRead.Enabled = (!GlobalInfo.hardwareManage.ReadBaseInfo) && (!isResponse); dgvBaseList.Columns["colBaseChannel"].ReadOnly = GlobalInfo.hardwareManage.ReadBaseInfo || isResponse; } void hardwareManage_ReadOnlyEvent(bool ReadOnly) { //读基站信息或者设置基站信息时,不允许读键盘信息 btnKeypadInfoRead.Enabled = (!ReadOnly) && (!GlobalInfo.baseConnect.IsResponse); dgvBaseList.Columns["colBaseChannel"].ReadOnly = ReadOnly || GlobalInfo.baseConnect.IsResponse; } private void btnClose_Click(object sender, EventArgs e) { tmrReadKeyInfo.Enabled = false; this.Close(); } private void btnKeyapdInfoRead_Click(object sender, EventArgs e) { if (btnKeypadInfoRead.Tag.ToString() != "1") { tmrReadKeyInfo.Enabled = true; GlobalInfo.hardwareManage.ReadKeyModelInfoFlag = true; btnKeypadInfoRead.Tag = 1; btnKeypadInfoRead.Text = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "btnKeypadInfoRead_Stop", "停止读键盘信息"); } else { tmrReadKeyInfo.Enabled = false; GlobalInfo.hardwareManage.ReadKeyModelInfoFlag = false; btnKeypadInfoRead.Tag = 0; btnKeypadInfoRead.Text = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "btnKeypadInfoRead_Start", "开始读键盘信息"); } } /// /// 硬件配置信息触发事件 /// /// void BaseConfigEventHander(int BaseID) { for (int i = 0; i < dgvBaseList.Rows.Count; i++) { if (dgvBaseList.Rows[i].Cells["colBaseID"].Value.ToString() == BaseID.ToString()) { dgvBaseList.Rows[i].Cells["colBaseID"].Value = BaseID; dgvBaseList.Rows[i].Cells["colBaseChannel"].Value = GlobalInfo.baseConnect[BaseID.ToString()].BaseChannel; break; } } } /// /// 硬件监控触发事件 /// void HardwareMonitorEventHander(int BaseID, string KeyID, int onLineKeyNum) { for (int i = 0; i < dgvBaseList.Rows.Count; i++) { if (dgvBaseList.Rows[i].Cells["colBaseID"].Value.ToString() == BaseID.ToString()) { dgvBaseList.Rows[i].Cells["colBaseKeypadOnline"].Value = GlobalInfo.baseConnect[BaseID.ToString()].OnLineKeyNum.ToString(); } } } /// /// 翻译配对模式 /// 杨斌 2016-02-22 /// /// /// private string GetMatchModeText(int mode) { string res = ""; switch (mode) { case 1://固定配对 case 4://杨斌 2015-01-14 res = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "MatchMode1", "固定模式"); break; case 2://动态配对 case 5: res = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "MatchMode2", "自由模式"); break; case 3://免配对 case 6://杨斌 2015-01-14 res = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "MatchMode3", "免配对模式"); break; } return res; } /// /// 读硬件信息事件触发事件 /// void BaseModelEventHander(int BaseID) { for (int i = 0; i < dgvBaseList.Rows.Count; i++) { if (dgvBaseList.Rows[i].Cells["colBaseID"].Value.ToString() == BaseID.ToString()) { dgvBaseList.Rows[i].Cells["colBaseHardwareType"].Value = GlobalInfo.baseConnect[BaseID.ToString()].BaseModelName; dgvBaseList.Rows[i].Cells["colBaseSN"].Value = GlobalInfo.baseConnect[BaseID.ToString()].BaseSerialNumber; dgvBaseList.Rows[i].Cells["colMatchMode"].Value = GetMatchModeText(GlobalInfo.baseConnect[BaseID.ToString()].BaseMatchMode);//基站配对模式。杨斌 2013-05-08 } } } /// /// 基站IP地址触发事件 /// /// void BaseIPAddressHander(int BaseID) { for (int i = 0; i < dgvBaseList.Rows.Count; i++) { if (dgvBaseList.Rows[i].Cells["colBaseID"].Value.ToString() == BaseID.ToString()) { dgvBaseList.Rows[i].Cells["colBaseIPAddress"].Value = GlobalInfo.baseConnect[BaseID.ToString()].BaseIPAddress; } } } /// /// 读键盘硬件信息 /// /// void KeyModelInfoEventHander(KeyModelInfoParam keyModelInfoObj) { lblKeypadID.Text = keyModelInfoObj.KeyID.ToString(); if (keyModelInfoObj.HSerial != null)//杨斌 2015-03-13 lblKeypadSN.Text = keyModelInfoObj.HSerial.ToString(); else lblKeypadSN.Text = ""; } /// /// 连接基站事件 /// /// void ConnectStatusEventHander(int BaseID) { if (BaseID == 0) { for (int i = 0; i < dgvBaseList.Rows.Count; i++) { ClearBaseInfo(i); dgvBaseList.Rows[i].Cells["colconnectStatus"].Value = ""; } return; }//所有基站断开,返回 if (SystemConfig.MultiBase == 0) { dgvBaseList.Rows[0].Cells["colBaseID"].Value = BaseID.ToString(); } for (int i = 0; i < dgvBaseList.Rows.Count; i++) { //连接状 if (dgvBaseList.Rows[i].Cells["colBaseID"].Value.ToString() == BaseID.ToString()) { if (GlobalInfo.baseConnect[BaseID.ToString()].BaseConnectStatus == BasePara.ConnectStatus.csSuccess) { dgvBaseList.Rows[i].Cells["colconnectStatus"].Value = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "Succeed", "成功"); } else { ClearBaseInfo(i); dgvBaseList.Rows[i].Cells["colconnectStatus"].Value = ""; } break; } } } private bool IsContainBase(int BaseID) { bool chkValue = false; for (int i = 0; i < dgvBaseList.Rows.Count; i++) { if (dgvBaseList.Rows[i].Cells["colBaseID"].Value.ToString() == BaseID.ToString()) { chkValue = true; break; } } return chkValue; } /// /// 读配置信息事件 /// private void RefreshBaseList(int BaseID) { for (int i = 0; i < dgvBaseList.Rows.Count; i++) { if (dgvBaseList.Rows[i].Cells["colBaseID"].Value.ToString() == BaseID.ToString()) { dgvBaseList.Rows[i].Cells["colBaseChannel"].Value = GlobalInfo.baseConnect[i].BaseChannel.ToString(); dgvBaseList.Rows[i].Cells["colBaseHardwareType"].Value = GlobalInfo.baseConnect[i].BaseModelName; dgvBaseList.Rows[i].Cells["colBaseSN"].Value = GlobalInfo.baseConnect[i].BaseSerialNumber.ToString(); dgvBaseList.Rows[i].Cells["colMatchMode"].Value = GetMatchModeText(GlobalInfo.baseConnect[i].BaseMatchMode);//基站配对模式。杨斌 2013-05-08 } } } /// /// 连接失败清空基站信息 /// private void ClearBaseInfo(int iRow) { dgvBaseList.Rows[iRow].Cells["colBaseChannel"].Value = ""; dgvBaseList.Rows[iRow].Cells["colBaseHardwareType"].Value = ""; dgvBaseList.Rows[iRow].Cells["colBaseSN"].Value = ""; dgvBaseList.Rows[iRow].Cells["colMatchMode"].Value = "";//杨斌 2013-05-08 dgvBaseList.Rows[iRow].Cells["colconnectStatus"].Value = ""; dgvBaseList.Rows[iRow].Cells["colBaseKeypadOnline"].Value = 0; } /// /// 加载基站列表 /// private void loadBaseInfo() { dgvBaseList.Columns["colBaseIPAddress"].ReadOnly = (GlobalInfo.baseConnect.ConnectType != 2); dgvBaseList.Columns[0].Visible = false; //杨斌 2015-03-13 if (GlobalInfo.GetSdkType() == 1) { dgvBaseList.Columns["colBaseChannel"].Visible = false; dgvBaseList.Columns["colBaseIPAddress"].Visible = false; dgvBaseList.Columns["colBaseHardwareType"].Visible = false; dgvBaseList.Columns["colBaseSN"].Visible = false; dgvBaseList.Columns["colMatchMode"].Visible = false; lblBaseConnectType.Visible = false; //chkMultiBase.Visible = false; rbxBaseConnectUSB.Visible = false; rbxBaseConnectTCP.Visible = false; labKeyNoMode.Visible = false; cboKeyNoMode.Visible = false; gbxKeypadSN.Visible = false; //chkMultiBase.Checked = true; } if (GlobalInfo.baseConnect.MultiBase == 0) { dgvBaseList.RowCount = 1; // dgvBaseList.Columns[0].Visible=false; } else { dgvBaseList.RowCount = BaseConnect.cMaxBaseCount;//杨斌 2012-10-11 dgvBaseList.Columns["colBaseID"].ReadOnly = true; //dgvBaseList.Columns[0].Visible = true; } ControlOper.SetGridRowH(dgvBaseList);//杨斌 2016-03-04 for (int i = 0; i < dgvBaseList.Rows.Count; i++) { //基站启用状态 if (((BasePara)(GlobalInfo.baseConnect.BaseList[i])).EnableStatus == true) { dgvBaseList.Rows[i].Cells[0].Value = "√"; }//启用状态 else { dgvBaseList.Rows[i].Cells[0].Value = "×"; }//禁用状态 //基站编号 dgvBaseList.Rows[i].Cells["colBaseID"].Value = GlobalInfo.baseConnect[i].BaseID; if (GlobalInfo.baseConnect.ConnectType == 2) //基站IP地址 dgvBaseList.Rows[i].Cells["colBaseIPAddress"].Value = GlobalInfo.baseConnect[i].BaseIPAddress; //基站频点 dgvBaseList.Rows[i].Cells["colBaseChannel"].Value = GlobalInfo.baseConnect[i].BaseChannel; //基站型号 dgvBaseList.Rows[i].Cells["colBaseHardwareType"].Value = GlobalInfo.baseConnect[i].BaseModelName; //序列号 dgvBaseList.Rows[i].Cells["colBaseSN"].Value = GlobalInfo.baseConnect[i].BaseSerialNumber; //配对模式 2013-05-08 dgvBaseList.Rows[i].Cells["colMatchMode"].Value = GetMatchModeText(GlobalInfo.baseConnect[i].BaseMatchMode); //杨斌 2015-01-14 cboKeyNoMode.SelectedIndex = GlobalInfo.EnabledSN ? 1 : 0; //连接状态 if (GlobalInfo.baseConnect[i].BaseConnectStatus == BasePara.ConnectStatus.csSuccess) { dgvBaseList.Rows[i].Cells["colconnectStatus"].Value = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "Succeed", "成功"); } else { ClearBaseInfo(i); dgvBaseList.Rows[i].Cells["colconnectStatus"].Value = ""; } //在线键盘 dgvBaseList.Rows[i].Cells["colBaseKeypadOnline"].Value = GlobalInfo.baseConnect[i].OnLineKeyNum; }//填充列表 //杨斌 2015-03-18 if (GlobalInfo.GetSdkType() == 1) { if (GlobalInfo.baseConnect.MultiBase == 0) { for (int i = 0; i < GlobalInfo.baseConnect.BaseList.Count; i++) { if (GlobalInfo.baseConnect[i].BaseConnectStatus == BasePara.ConnectStatus.csSuccess) { dgvBaseList.Rows[0].Cells["colBaseID"].Value = GlobalInfo.baseConnect[i].BaseID; dgvBaseList.Rows[0].Cells["colconnectStatus"].Value = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "Succeed", "成功"); break; } } } else { for (int i = 0; i < GlobalInfo.baseConnect.BaseList.Count; i++) { int bId = GlobalInfo.baseConnect[i].BaseID; if ((bId >= 1) && (bId <= dgvBaseList.Rows.Count)) { int nRow = bId - 1; dgvBaseList.Rows[nRow].Cells["colBaseID"].Value = GlobalInfo.baseConnect[i].BaseID; if (GlobalInfo.baseConnect[i].BaseConnectStatus == BasePara.ConnectStatus.csSuccess) dgvBaseList.Rows[nRow].Cells["colconnectStatus"].Value = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "Succeed", "成功"); else dgvBaseList.Rows[nRow].Cells["colconnectStatus"].Value = ""; } } } } } private void rbxBaseConnectUSB_Click(object sender, EventArgs e) { if (rbxBaseConnectUSB.Checked) { NeedRefresh = false; GlobalInfo.hardwareManage.ReadBaseInfo = true; GlobalInfo.baseConnect.ConnectType = 1; dgvBaseList.Columns["colBaseIPAddress"].ReadOnly = true; dgvBaseList.Columns["colBaseIPAddress"].Visible = false; GlobalInfo.sysConfig.WriteSysConfig("Device", "PortType", 1); for (int i = 0; i < dgvBaseList.Rows.Count; i++) { //基站IP地址 dgvBaseList.Rows[i].Cells["colBaseIPAddress"].Value = ""; } } } private void rbxBaseConnectTCP_Click(object sender, EventArgs e) { if (rbxBaseConnectTCP.Checked) { NeedRefresh = false; GlobalInfo.hardwareManage.ReadBaseInfo = true; GlobalInfo.baseConnect.ConnectType = 2; dgvBaseList.Columns["colBaseIPAddress"].ReadOnly = false; dgvBaseList.Columns["colBaseIPAddress"].Visible = true; GlobalInfo.sysConfig.WriteSysConfig("Device", "PortType", 2); for (int i = 0; i < dgvBaseList.Rows.Count; i++) { //基站IP地址 dgvBaseList.Rows[i].Cells["colBaseIPAddress"].Value = GlobalInfo.baseConnect[i].BaseIPAddress; } } } private void btnBaseConnect_Click(object sender, EventArgs e) { GlobalInfo.baseConnect.DisConnectFlag = false; GlobalInfo.hardwareManage.ReadBaseInfo = true; for (int i = 0; i < dgvBaseList.Rows.Count; i++) ClearBaseInfo(i); GlobalInfo.baseConnect.DisConnect(); //刷新连接 GlobalInfo.baseConnect.Connect(); this.Close(); } private void dgvBaseList_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { int baseID = Convert.ToInt32(dgvBaseList.Rows[e.RowIndex].Cells["colBaseID"].Value); switch (e.ColumnIndex) { case 0://启动状态 if (dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "√") { //多基站模式保持启用基站个数大于等于2 if (!CheckSetEnabled()) { MessageBox.Show(GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "CheckMessage", "当前为多基站模式,至少要启用1个基站")); } else { dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "×"; GlobalInfo.hardwareManage.ChangeEnableStatus(baseID, false); GlobalInfo.sysConfig.WriteBaseList(baseID, "Enabled", false); } } else { dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "√"; GlobalInfo.hardwareManage.ChangeEnableStatus(baseID, true); GlobalInfo.sysConfig.WriteBaseList(baseID, "Enabled", true); } //更改启用状态需要刷新 //NeedRefresh = true; break; } } } private bool CheckSetEnabled() { int iNum = 0; for (int i = 0; i < GlobalInfo.baseConnect.BaseList.Count; i++) { if (GlobalInfo.baseConnect[i].EnableStatus == true) { iNum += 1; } } return (iNum < 2) ? false : true; } private void FrmDeviceSet_FormClosed(object sender, FormClosedEventArgs e) { tmrReadKeyInfo.Enabled = false; if (NeedRefresh) { btnBaseConnect_Click(btnBaseConnect, e); } //GlobalInfo.hardwareManage.HardwareMonitorEnable = false; //GlobalInfo.hardwareManage.HardwareTestEnable = false; } private void btnBaseDisconnect_Click(object sender, EventArgs e) { //断开连接,关闭界面需要刷新 //NeedRefresh = true; GlobalInfo.baseConnect.DisConnectFlag = true; GlobalInfo.baseConnect.DisConnect(); for (int i = 0; i < dgvBaseList.Rows.Count; i++) { ClearBaseInfo(i); } } private void dgvBaseList_CellEndEdit(object sender, DataGridViewCellEventArgs e) { try { if (e.RowIndex >= 0) { string msg = ""; switch (e.ColumnIndex) { case 2://基站频点 //更改基站频点 msg = ""; string baseIDStr = dgvBaseList.Rows[e.RowIndex].Cells["colBaseID"].Value.ToString(); if (GlobalInfo.baseConnect[baseIDStr].BaseConnectStatus != BasePara.ConnectStatus.csSuccess) { return; } string newChannel = ""; try { newChannel = dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); } catch { newChannel = ""; } switch (CheckNewChannel(newChannel, e.RowIndex)) { case -1: msg = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "CheckChannelFormat", "频点格式不正确"); break; case -2: msg = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "CheckChannelRange", "频点超过范围"); break; case -3: msg = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "CheckChannelExist", "该频点已使用,不允许重复"); break; case 0: int channal = Convert.ToInt32(dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value); GlobalInfo.hardwareManage.ChangeBaseChannel(GlobalInfo.baseConnect[e.RowIndex].BaseID, channal); //写配置文件 GlobalInfo.sysConfig.WriteBaseList(GlobalInfo.baseConnect[e.RowIndex].BaseID, "Channel", channal); break; }//频点超过范围 if (msg != "") { MessageBox.Show(msg, GlobalInfo.GetAppName()); dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = oldChannel; } break; case 3://基站IP msg = ""; string newIP = ""; try { newIP = dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); } catch { newIP = ""; } switch (CheckNewIP(newIP, e.RowIndex)) { case 0: int baseID = GlobalInfo.baseConnect[e.RowIndex].BaseID; string baseIP = dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); if (dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() != oldIPAddress) { ClearBaseInfo(e.RowIndex); } GlobalInfo.hardwareManage.ChangeBaseIPAddress(baseID, baseIP); GlobalInfo.sysConfig.WriteBaseList(baseID, "IP", baseIP); NeedRefresh = true; break; case -1: msg = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "CheckIPFormat", "IP地址格式不正确"); break; case -2: msg = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "CheckIPExist", "该地址已使用,不允许重复"); break; } if (msg != "") { MessageBox.Show(msg, GlobalInfo.GetAppName()); dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = oldIPAddress; } break; } } } catch { } } private void tmrReadKeyInfo_Tick(object sender, EventArgs e) { GlobalInfo.hardwareManage.ReadKeyModelInfo(); } private bool IsLoading = false;//杨斌 2015-01-06 private void FrmDeviceSet_Load(object sender, EventArgs e) { IsLoading = true; GlobalInfo.SysLanguage.SetLanguage(this.Name, this); //杨斌 2015-01-16 cboKeyNoMode.Items[0] = GlobalInfo.SysLanguage.LPT.ReadString("FrmRankVoter", "KeypadID", "键盘编号"); cboKeyNoMode.Items[1] = "SN"; tmrReadKeyInfo.Interval = 1000; tmrReadKeyInfo.Enabled = false; //GlobalInfo.SysLanguage.SetLanguage(this.Name, this); //速度很慢 //GlobalInfo.hardwareManage.HardwareMonitorEnable = true; //杨斌 2013-08-02 lblKeypadID.Font = new Font(lblKeypadID.Font.Name, 24, FontStyle.Bold); lblKeypadSN.Font = new Font(lblKeypadSN.Font.Name, 24, FontStyle.Bold); NeedRefresh = false; //基站正在做其他操作或者幻灯片处于反馈状态,不允许读键盘信息 btnKeypadInfoRead.Enabled = (!GlobalInfo.hardwareManage.ReadBaseInfo) && (!GlobalInfo.baseConnect.IsResponse); chkMultiBase.Checked = (GlobalInfo.baseConnect.MultiBase == 0) ? false : true; rbxBaseConnectTCP.Checked = (GlobalInfo.baseConnect.ConnectType == 2) ? true : false; rbxBaseConnectUSB.Checked = (GlobalInfo.baseConnect.ConnectType == 1) ? true : false; dgvBaseList.Columns["colBaseIPAddress"].Visible = (GlobalInfo.baseConnect.ConnectType == 2); dgvBaseList.Columns["colBaseChannel"].ReadOnly = GlobalInfo.hardwareManage.ReadBaseInfo || GlobalInfo.baseConnect.IsResponse; loadBaseInfo(); tabDeviceSet.TabIndex = 0; lblKeypadID.Text = ""; lblKeypadSN.Text = ""; loadBaseInfo(); ControlOper.AutoSizeDataGridViewColumn(dgvBaseList); //杨斌 2012-06-11 switch (GlobalInfo.OEMLogo) { case OEMLogos.oem3eAnalyzer: //连接模式 lblBaseConnectType.Visible = false; rbxBaseConnectUSB.Visible = false; rbxBaseConnectTCP.Visible = false; //键盘设置 tabDeviceSet.TabPages.Remove(tpgKeypadInfo); //基站序列号 colBaseSN.Visible = false; break; case OEMLogos.SunVote: break; } if (GlobalInfo.OEMLogo != OEMLogos.SunVote)//杨斌 2015-01-26 { labKeyNoMode.Visible = cboKeyNoMode.Visible = false; } IsLoading = false; } private void dgvBaseList_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { if (e.RowIndex >= 0) { switch (e.ColumnIndex) { case 1://基站ID oldBaseID = Convert.ToInt32(dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value); break; case 2://基站频点 string baseIDStr = dgvBaseList.Rows[e.RowIndex].Cells["colBaseID"].Value.ToString(); if (GlobalInfo.baseConnect[baseIDStr].BaseConnectStatus != BasePara.ConnectStatus.csSuccess) { return; } oldChannel = Convert.ToInt32(dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value); break; case 3://基站IP oldIPAddress = dgvBaseList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); break; } } } /// /// 检测基站ID是否合法 /// /// /// private bool CheckNewBaseID(int newBaseID, int iRow) { bool CheckValue = true; if ((newBaseID > GlobalInfo.maxBaseID) || (newBaseID < GlobalInfo.minBaseID)) { CheckValue = false; } else { for (int i = 0; i < GlobalInfo.baseConnect.BaseList.Count; i++) { if ((i != iRow) && (GlobalInfo.baseConnect[i].BaseID == newBaseID)) { CheckValue = false; break; } } } return CheckValue; } /// /// 检测新频点是否合法 /// /// /// 检验结果:-1格式不正确,-2频点超过范围,-3频点重复 private int CheckNewChannel(string newChannel, int iRow) { int CheckValue = 0; if (newChannel.Trim() == "") { return -1; } if (!Regex.IsMatch(newChannel, @"^\d*$")) { CheckValue = -1; } else { if ((Convert.ToInt32(newChannel) > GlobalInfo.maxChannel) || (Convert.ToInt32(newChannel) < GlobalInfo.minChannel)) { CheckValue = -2; } else { for (int i = 0; i < GlobalInfo.baseConnect.BaseList.Count; i++) { if ((i != iRow) && (GlobalInfo.baseConnect[i].BaseChannel == Convert.ToInt32(newChannel))) { CheckValue = -3; break; } } } } return CheckValue; } /// /// 检测新IP是否合法 /// /// /// -1格式不正确,-2已使用 private int CheckNewIP(string IPAddress, int iRow) { int CheckValue = 0; if (!PublicFunction.CheckIPAddress(IPAddress)) { CheckValue = -1; } else { for (int i = 0; i < GlobalInfo.baseConnect.BaseList.Count; i++) { if ((i != iRow) && (GlobalInfo.baseConnect[i].BaseConnectStatus == BasePara.ConnectStatus.csSuccess) && (GlobalInfo.baseConnect[i].BaseIPAddress == IPAddress)) { CheckValue = -2; break; } } } return CheckValue; } private void dgvBaseList_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void chkMultiBase_Click(object sender, EventArgs e) { int multiBase = ((chkMultiBase.Checked)) ? 1 : 0; GlobalInfo.hardwareManage.ReadBaseInfo = true; GlobalInfo.sysConfig.WriteSysConfig("Device", "MultiBase", multiBase); GlobalInfo.sysConfig.iniSystemInfo(); GlobalInfo.baseConnect.MultiBase = multiBase; loadBaseInfo(); GlobalInfo.baseConnect.DisConnect(); if (multiBase == 0) GlobalInfo.baseConnect.ConnectOne(); else GlobalInfo.baseConnect.Connect(); } private void tabDeviceSet_SelectedIndexChanged(object sender, EventArgs e) { if (tabDeviceSet.SelectedIndex == 0) { tmrReadKeyInfo.Enabled = false; btnKeypadInfoRead.Tag = 0; lblKeypadID.Text = ""; lblKeypadSN.Text = ""; btnKeypadInfoRead.Text = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "btnKeypadInfoRead_Start", "开始读键盘信息"); } } private void dgvBaseList_KeyPress(object sender, KeyPressEventArgs e) { } private void dgvBaseList_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { } private void dgvBaseList_Click(object sender, EventArgs e) { } private void gbxKeypadInfo_Enter(object sender, EventArgs e) { } private void cboKeyNoMode_SelectedIndexChanged(object sender, EventArgs e) { if (IsLoading) return; if (!cboKeyNoMode.Visible) return; //杨斌 2015-01-14 int matchMode = GlobalInfo.baseConnect[0].BaseMatchMode; if (cboKeyNoMode.SelectedIndex == 1) { if (matchMode <= 3) matchMode += 3; } else { if (matchMode >= 4) matchMode -= 3; } for (int i = 0; i < dgvBaseList.Rows.Count; i++) { BasePara par = ((BasePara)(GlobalInfo.baseConnect.BaseList[i])); GlobalInfo.hardwareManage.baseManage.SetAddConfig(par.BaseID, matchMode, par.BaseName); } } private void chkMultiBase_CheckedChanged(object sender, EventArgs e) { } private void rbxBaseConnectTCP_CheckedChanged(object sender, EventArgs e) { } } }