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)
{
}
}
}