//修改服务器端口号 void btnSysSetServerPortOK_Click(object sender, EventArgs e) { if (richTextSysSetServerPort.Enabled == true) { //验证端口号格式是否正确(即是否是小于65535的纯数字) if (RegexUtil.RegexCheckNumber(richTextSysSetServerPort.Text)) { int port = int.Parse(richTextSysSetServerPort.Text); if ((port > 0) && (port < 65535)) { richTextSysSetServerPort.Enabled = false; SysConfig.Setting.serverPort = port; SysConfig.SaveSystemSetting(SysConfig.Setting); //将系统设置序列化到磁盘 //写入服务器端口号修改记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.SysSettingPanel, (int)BtnOfSysSettingPanel.ChangeServerPort, richTextSysSetServerPort.Text)); } else { MessageBox.Show("请输入小于65535的端口号"); } } else { MessageBox.Show("请输入有效的端口号"); } } }
//查看按钮点击事件 void btnDeviceBaseCheck_Click(object sender, EventArgs e) { TreeNode fileNode = treeViewDeviceBase.SelectedNode; if (fileNode != null) //若选中了节点 { string srcFilePath = ((string[])fileNode.Tag)[0]; //源文件全路径 string htmlDirPath = ((string[])fileNode.Tag)[1]; //Html文档所在文件夹路径 string htmlFilePath = ((string[])fileNode.Tag)[2]; //Html文档全路径 if (File.Exists(srcFilePath)) //若所选中的文件存在 { //写入按钮点击记录到日志文件中 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.DeviceBasePanel, (int)BtnOfDeviceBasePanel.CheckBtn, srcFilePath)); if (File.Exists(htmlFilePath)) //若Html文件存在, 则显示出来 { webBrowserDeviceBase.Navigate(htmlFilePath); //显示到WebBrowser中 } else //若Html文件不存在, 则创建 { if (DeviceBaseGenerateHtmlByWord(srcFilePath)) //若创建Html文档成功 { webBrowserDeviceBase.Navigate(htmlFilePath); //则显示到WebBrowser中 } } } } }
//返回按键 void btnSysSetReturn_Click(object sender, EventArgs e) { isSystemSetting = false; PanelSwitch(CurPanel.EpanelContentMain); //写入按钮点击记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.SysSettingPanel, (int)BtnOfSysSettingPanel.SysSettingReturn, null)); }
//修改服务器地址 void btnSysSetServerAddOK_Click(object sender, EventArgs e) { if (richTextSysSetServerAdd.Enabled == true) //若处于可以修改的状态 { //判断IP是否正确, 这里直接用IPAddress.Parse来尝试将IP地址进行解析, 若报异常则代表是无效的IP地址 //bool isIpValid = false; bool isIpValid = Uri.IsWellFormedUriString(richTextSysSetServerAdd.Text, UriKind.RelativeOrAbsolute); // try {IPAddress ipAddress = IPAddress.Parse(richTextSysSetServerAdd.Text); isIpValid = true;} //catch (Exception ex) { Console.WriteLine(ex.Message); log.Info(AppUtil.getExceptionInfo(ex)); isIpValid = false; } //若IP地址有效 if (isIpValid) { richTextSysSetServerAdd.Enabled = false; SysConfig.Setting.serverIP = richTextSysSetServerAdd.Text; SysConfig.SaveSystemSetting(SysConfig.Setting); //将系统设置序列化到磁盘 //写入服务器地址修改记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.SysSettingPanel, (int)BtnOfSysSettingPanel.ChangeServerIP, richTextSysSetServerAdd.Text)); } else { MessageBox.Show("请输入有效的IP地址"); } } }
//开始同步按钮点击事件 void btnInfoSyncStart_Click(object sender, EventArgs e) { //写入按钮点击记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.InfoSyncPanel, (int)BtnOfInfoSyncPanel.StartSync, null)); if (!isInfoSyncing) //若没有正在信息同步 { //if (netcom.isConnected) //若网络连接正常 if (true) { isInfoSyncing = true; pictureInfoSyncWait.Visible = true; //"等待图片"显示出来 //将所有URI清空 LatestLogName = null; //开启信息同步线程 infoSyncTh = new Thread(InfoSyncThread); infoSyncTh.Name = "信息同步线程"; infoSyncTh.IsBackground = true; infoSyncTh.Start(); } else { MessageBox.Show("当前网络不可用", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("正在信息同步中, 请不要重复点击"); } }
//修改系统密码 void btnSysSetSysPwdOK_Click(object sender, EventArgs e) { if (richTextSysSetSysPwd.Enabled == true) { richTextSysSetSysPwd.Enabled = false; SysConfig.Setting.systemPassword = richTextSysSetSysPwd.Text; SysConfig.SaveSystemSetting(SysConfig.Setting); //写入系统密码修改记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.SysSettingPanel, (int)BtnOfSysSettingPanel.ChangeSysPwd, richTextSysSetSysPwd.Text)); } }
//修改服务器账号 void btnSysSetAccountOK_Click(object sender, EventArgs e) { if (richTextSysSetAccount.Enabled == true) { richTextSysSetAccount.Enabled = false; SysConfig.Setting.accessAccount = richTextSysSetAccount.Text; SysConfig.SaveSystemSetting(SysConfig.Setting); //将系统设置序列化到磁盘 //写入服务器账号修改记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.SysSettingPanel, (int)BtnOfSysSettingPanel.ChangeAccount, richTextSysSetAccount.Text)); } }
//修改单位 void btnSysSetUnitOK_Click(object sender, EventArgs e) { if (richTextSysSetUnit.Enabled == true) { richTextSysSetUnit.Enabled = false; SysConfig.Setting.unitName = richTextSysSetUnit.Text; SysConfig.SaveSystemSetting(SysConfig.Setting); labelUnit.Text = "单位:" + SysConfig.Setting.unitName; //写入单位修改记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.SysSettingPanel, (int)BtnOfSysSettingPanel.ChangeUnit, richTextSysSetUnit.Text)); } }
//修改阈值 void btnSysSetThresOK_Click(object sender, EventArgs e) { if (comboBoxSysSetThres.Enabled == true) { comboBoxSysSetThres.Enabled = false; btnThresList.Enabled = false; SysConfig.Setting.alarmThreshold = comboBoxSysSetThres.SelectedIndex; SysConfig.SaveSystemSetting(SysConfig.Setting); //写入阈值修改记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.SysSettingPanel, (int)BtnOfSysSettingPanel.ChangeThreshold, comboBoxSysSetThres.SelectedIndex.ToString())); } }
//删除按钮点击事件 void btnDeviceBaseDel_Click(object sender, EventArgs e) { TreeNode selectedNode = treeViewDeviceBase.SelectedNode; if ((selectedNode != null) && (selectedNode != rootNodeDeviceBase)) //不能删除空节点 { if ((selectedNode != rootNodeDeviceBase) && (selectedNode != rootNodeDeviceBase)) //不能删除根节点 和 二级子节点 { string path = ((string[])selectedNode.Tag)[0]; if (Directory.Exists(path)) //如果选中的是目录, 则删除路径就是当前目录 { if (MessageBox.Show("您确定要删除“" + selectedNode.Text + "”目录吗?", "删除文件提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { try { //写入按钮点击记录到日志文件中 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.DeviceBasePanel, (int)BtnOfDeviceBasePanel.DeleteBtn, ((string[])selectedNode.Tag)[0])); Directory.Delete(((string[])selectedNode.Tag)[0], true); Directory.Delete(((string[])selectedNode.Tag)[1], true); treeViewDeviceBase.Nodes.Remove(selectedNode); } catch (Exception ex) { Console.WriteLine(ex.Message); log.Info(AppUtil.getExceptionInfo(ex)); } } } else //如果选中的是文件, 则删除路径就是当前文件的目录 { if (MessageBox.Show("您确定要删除“" + selectedNode.Text + "”文件吗?", "删除文件提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { try { //写入按钮点击记录到日志文件中 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.DeviceBasePanel, (int)BtnOfDeviceBasePanel.DeleteBtn, ((string[])selectedNode.Tag)[0])); File.Delete(((string[])selectedNode.Tag)[0]); Directory.Delete(((string[])selectedNode.Tag)[1], true); treeViewDeviceBase.Nodes.Remove(selectedNode); } catch (Exception ex) { Console.WriteLine(ex.Message); log.Info(AppUtil.getExceptionInfo(ex)); } } } } } }
//确认临时编组按钮点击事件 void btnTempGroupOK_Click(object sender, EventArgs e) { //先判断用户输入的格式对不对 //检查原组号是否是数字 if (RegexUtil.RegexCheckNumber(richTextTempOldGrpNO.Text)) { //检查原组号是否超出范围 if (int.Parse(richTextTempOldGrpNO.Text) < 0xFFFFFF) { //检查新组号是否是数字 if (RegexUtil.RegexCheckNumber(richTextTempNewGrpNO.Text)) { //检查新组号是否超出范围 if (int.Parse(richTextTempNewGrpNO.Text) < 0xFFFFFF) { //检查原用户号是否是数字 if (RegexUtil.RegexCheckNumber(richTextTempOldDevNO.Text)) { //检查原用户号是否超出范围 if (int.Parse(richTextTempOldDevNO.Text) < 33) { //检查新用户号是否是数字 if (RegexUtil.RegexCheckNumber(richTextTempNewDevNO.Text)) { //检查新用户号是否超出范围 if (int.Parse(richTextTempNewDevNO.Text) < 33) { //全部检查完毕没有问题 richTextTempGroupStatus.Text = ""; //状态栏清空 TempGrpOldSerialNO = (int.Parse(richTextTempOldGrpNO.Text) << 8) | (int.Parse(richTextTempOldDevNO.Text)); TempGrpNewSerialNO = (int.Parse(richTextTempNewGrpNO.Text) << 8) | (int.Parse(richTextTempNewDevNO.Text)); //发送临时组队命令 SerialSendMsg sendMsg = ProtocolCommand.BuildTeamCmdMsg(AppUtil.IntToBytes(TempGrpOldSerialNO), AppUtil.IntToBytes(TempGrpNewSerialNO), SysConfig.getSerialNOBytes()); serialCom.SendQueue_Enqueue(sendMsg); //发送出去 //写入按钮点击记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.TempGrpPanel, (int)BtnOfTempGrpPanel.StartTempGrp, TempGrpOldSerialNO.ToString("X8") + " " + TempGrpNewSerialNO.ToString("X8"))); } else { MessageBox.Show("新用户号必须小于33"); } } else { MessageBox.Show("新用户号必须为数字形式"); } } else { MessageBox.Show("原用户号必须小于33"); } } else { MessageBox.Show("原用户号必须为数字形式"); } } else { MessageBox.Show("新组号必须小于16777215"); } } else { MessageBox.Show("新组号必须为数字形式"); } } else { MessageBox.Show("原组号必须小于16777215"); } } else { MessageBox.Show("原组号必须为数字形式"); } }
//添加按钮点击事件 void btnDeviceBaseAdd_Click(object sender, EventArgs e) { TreeNode selectedNode = treeViewDeviceBase.SelectedNode; TreeNode ParentNode = null; string savePath = null; if (selectedNode != null) //选中了节点 { string path = ((string[])selectedNode.Tag)[0]; //源文件全路径 // 若选中的节点在同步库中, 则将其改为本地库 if (path.Contains("\\res\\DeviceBase\\SrcFiles\\同步库")) { foreach (TreeNode node in rootNodeDeviceBase.Nodes) { if (node.Text == "本地库") { ParentNode = node; } } savePath = ((string[])rootNodeDeviceBase.Tag)[0] + "\\本地库"; } else { if (Directory.Exists(path)) { savePath = path; ParentNode = selectedNode; } //如果选中的是目录, 则保存路径就是当前目录 else { savePath = ((string[])selectedNode.Parent.Tag)[0]; ParentNode = selectedNode.Parent; } //如果选中的是文件, 则保存路径就是当前文件的目录 } } else //如果没有选中, 则保存路径就是本地库目录 { foreach (TreeNode node in rootNodeDeviceBase.Nodes) { if (node.Text == "本地库") { ParentNode = node; } } savePath = ((string[])rootNodeDeviceBase.Tag)[0] + "\\本地库"; } OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Word|*.docx|Word|*.doc"; openFileDialog.FilterIndex = 0; openFileDialog.RestoreDirectory = true; //保存对话框是否记忆上次打开的目录 openFileDialog.Title = "添加文件"; if (openFileDialog.ShowDialog() == DialogResult.OK) { if (AppUtil.CopyFileTo(openFileDialog.FileName, savePath)) //若拷贝文件成功 { string filePath = savePath + "\\" + Path.GetFileName(openFileDialog.FileName); TreeNode subFileNode = new TreeNode(Path.GetFileNameWithoutExtension(filePath)); subFileNode.Tag = GetTagPath(Path.GetFullPath(filePath)); subFileNode.ImageIndex = 1; subFileNode.SelectedImageIndex = 1; ParentNode.Nodes.Add(subFileNode); //写入按钮点击记录到日志文件中 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.DeviceBasePanel, (int)BtnOfDeviceBasePanel.AddBtn, openFileDialog.FileName)); } } }
//返回按钮点击事件 void btnDeviceBaseReturn_Click(object sender, EventArgs e) { PanelSwitch(CurPanel.EpanelContentMain); //写入按钮点击记录到日志文件中 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.DeviceBasePanel, (int)BtnOfDeviceBasePanel.DeviceBaseReturn, null)); }
//导入用户 按钮 void btnSysSetImport_Click(object sender, EventArgs e) { List <UserBasicInfo> userList = null; int SuccessCnt = 0; //导入成功的文件数目 OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Excel,JPG,PNG|*.xlsx;*.xls;*.jpg;*.jpeg;*.png"; openFileDialog.FilterIndex = 0; openFileDialog.RestoreDirectory = true; //保存对话框是否记忆上次打开的目录 openFileDialog.Multiselect = true; openFileDialog.InitialDirectory = Application.StartupPath + @"\res\UserTable"; openFileDialog.Title = "导入用户配置文件"; if (openFileDialog.ShowDialog() == DialogResult.OK) { if (openFileDialog.FileNames != null) { string[] filesPath = openFileDialog.FileNames; foreach (string filePath in filesPath) { if (Path.GetExtension(filePath).Contains("xlsx") || Path.GetExtension(filePath).Contains("xls")) //若是excel文件 { userList = userRW.ReadUserInfoFile(openFileDialog.FileName); //读取导入文件中的用户 if (userList != null) { //删除当前所有用户 for (int i = users.Count - 1; i >= 0; i--) { RemoveUserAt(i); } if (userList.Count > 0) { foreach (UserBasicInfo userInfo in userList) { AddUser(userInfo); } } //更新默认用户文件 userRW.SaveUserInfoFile(userRW.DefaultUserFileName, users); //写入按钮点击记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.SysSettingPanel, (int)BtnOfSysSettingPanel.ImportUsers, openFileDialog.FileName)); //写入用户全部更新记录 worklog.LogQueue_Enqueue(LogCommand.getUserUpdateRecord(1, users, null)); SuccessCnt++; } } else //若是图像文件 { if (AppUtil.CopyFileTo(filePath, ".\\res\\UserTable")) // 直接将其拷贝到用户目录下 { SuccessCnt++; } } } if (SuccessCnt == 0) { MessageBox.Show("导入失败"); } else if (SuccessCnt < filesPath.Length) { MessageBox.Show("部分导入成功"); } else { MessageBox.Show("导入成功"); } } } }
//修改组号 void btnSysSetGrpNOOK_Click(object sender, EventArgs e) { if (richTextSysSetGrpNO.Enabled == true) { //验证组号格式是否正确(即是否是小于16777215的纯数字) if (RegexUtil.RegexCheckNumber(richTextSysSetGrpNO.Text)) { int GrpNO = int.Parse(richTextSysSetGrpNO.Text); if ((GrpNO > 0) && (GrpNO < 16777215)) { richTextSysSetGrpNO.Text = GrpNO.ToString("D8"); richTextSysSetGrpNO.Enabled = false; SysConfig.Setting.groupNumber = GrpNO; labelGrpNumber.Text = "组号:" + SysConfig.Setting.groupNumber.ToString("D8"); SysConfig.SaveSystemSetting(SysConfig.Setting); //写入组号修改记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.SysSettingPanel, (int)BtnOfSysSettingPanel.ChangeGrpNO, richTextSysSetGrpNO.Text)); isSerialShouldOpen = true; } else { MessageBox.Show("请输入小于16777215的组号"); } } else { MessageBox.Show("请输入正确的组号格式"); } //验证信道格式是否正确(即是否是小于30的纯数字) if (RegexUtil.RegexCheckNumber(richTextSysSetChannal.Text)) { int Channal = int.Parse(richTextSysSetChannal.Text); if ((Channal > 0) && (Channal < 30) && (Channal < 23 || Channal > 25)) { richTextSysSetChannal.Text = Channal.ToString("D8"); richTextSysSetChannal.Enabled = false; SysConfig.Setting.channal = Channal; labelChannel.Text = "信道:" + SysConfig.Setting.channal.ToString("D2"); SysConfig.SaveSystemSetting(SysConfig.Setting); //写入组号修改记录 //worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.SysSettingPanel, (int)BtnOfSysSettingPanel.ChangeGrpNO, richTextSysSetGrpNO.Text)); isSerialShouldOpen = true; //串口通信配置 //string comName = AppUtil.FindComByKeyStr(ComKeyStr); //查找包含关键字的COM号 if (SysConfig.Setting.serialCom != null) { if (serialCom.ComOpen(SysConfig.Setting.serialCom, SerialBaudLUT[SysConfig.Setting.serialBaud]))//若打开串口成功 { //写入串口连接记录到日志文件中 worklog.LogQueue_Enqueue(LogCommand.getSerialRecord(SerialRecordType.Connect, null)); serialCom.SendQueue_Enqueue(ProtocolCommand.SwitchChannelMsg((byte)(SysConfig.Setting.channal))); //切换信道 } } else { MessageBox.Show("打开串口失败!"); } } else { MessageBox.Show("请输入小于30的信道号 并且不为 23 24 25"); } } else { MessageBox.Show("请输入正确的组号格式"); } } }
//用户列表 按钮 void btnSysSetCheckUser_Click(object sender, EventArgs e) { PanelSwitch(CurPanel.EpanelCheckUser); //写入按钮点击记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.SysSettingPanel, (int)BtnOfSysSettingPanel.CheckUser, null)); }
//返回按钮响应事件 void btnInfoSyncReturn_Click(object sender, EventArgs e) { PanelSwitch(CurPanel.EpanelSysSetting); //写入按钮点击记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.InfoSyncPanel, (int)BtnOfInfoSyncPanel.InfoSyncReturn, null)); }
//确认改号按钮点击事件 void btnUserChangeNOOK_Click(object sender, EventArgs e) { //先判断用户输入的格式对不对 //检查原组号是否是数字 if (RegexUtil.RegexCheckNumber(richTextOldGrpNO.Text)) { //检查原组号是否超出范围 if (int.Parse(richTextOldGrpNO.Text) < 0xFFFFFF) { //检查新组号是否是数字 if (RegexUtil.RegexCheckNumber(richTextNewGrpNO.Text)) { //检查新组号是否超出范围 if (int.Parse(richTextNewGrpNO.Text) < 0xFFFFFF) { //检查原用户号是否是数字 if (RegexUtil.RegexCheckNumber(richTextOldDevNO.Text)) { //检查原用户号是否超出范围 if (int.Parse(richTextOldDevNO.Text) < 33) { //检查新用户号是否是数字 if (RegexUtil.RegexCheckNumber(richTextNewDevNO.Text)) { //检查新用户号是否超出范围 if (int.Parse(richTextNewDevNO.Text) < 33) { //检查信道号是否是数字 if (RegexUtil.RegexCheckNumber(richTextNewChannal.Text)) { ChangeNONewChannal = int.Parse(richTextNewChannal.Text); //检查信道号是否超出范围 if (ChangeNONewChannal < 31 && (ChangeNONewChannal < 23 || ChangeNONewChannal > 25)) { //全部检查完毕没有问题 richTextUserChangeNOStatus.Text = ""; //状态栏清空 ChangeNOOldSerialNO = (int.Parse(richTextOldGrpNO.Text) << 8) | (int.Parse(richTextOldDevNO.Text)); ChangeNONewSerialNO = (int.Parse(richTextNewGrpNO.Text) << 8) | (int.Parse(richTextNewDevNO.Text)); ChangeNONewSerialNO_forChannal = ChangeNONewSerialNO; //发送临时组队命令 SerialSendMsg sendMsg = ProtocolCommand.ParaSetup1CmdMsg(AppUtil.IntToBytes(ChangeNOOldSerialNO), AppUtil.IntToBytes(ChangeNONewSerialNO)); //发送切换信道命令 serialCom.SendQueue_Enqueue(sendMsg); //发送出去 ChangeNONewChannal = int.Parse(richTextNewChannal.Text); Thread th = new Thread(new ThreadStart(ThreadSwitch)); //创建线程 th.Start(); //启动线程 //写入按钮点击记录 worklog.LogQueue_Enqueue(LogCommand.getButtonClickRecord(BTNPANEL.UserChangeNOPanel, (int)BtnOfUserChangeNOPanel.StartChangeNO, ChangeNOOldSerialNO.ToString("X8") + " " + ChangeNONewSerialNO.ToString("X8"))); } else { MessageBox.Show("信道必须小于30,切不能为23 24 25"); } } else { MessageBox.Show("信道必须是数字"); } } else { MessageBox.Show("新用户号必须小于33"); } } else { MessageBox.Show("新用户号必须为数字形式"); } } else { MessageBox.Show("原用户号必须小于33"); } } else { MessageBox.Show("原用户号必须为数字形式"); } } else { MessageBox.Show("新组号必须小于16777215"); } } else { MessageBox.Show("新组号必须为数字形式"); } } else { MessageBox.Show("原组号必须小于16777215"); } } else { MessageBox.Show("原组号必须为数字形式"); } }