private int[] fctext = new int[50];//故障配置 //public FaultInfoConfigForm(SerialPort paramPortDev) public FaultInfoConfigForm(DevExpress.XtraBars.Ribbon.RibbonForm form) { InitializeComponent(); //mSerialPort = paramPortDev; //mSerialPort.ReceivedBytesThreshold = 1; this._form = form; //初始化配置值 //获取静态配置类中的配置值 List<string> configList = FaultInfoConfigValue.getConfigList(); if (null == configList || configList.Count != 25) { } else { //1-23循环显示在相应输入框 for (int i = 1; i <= 23; i++) { string configVal = configList[i - 1]; Control control = Controls.Find("numericUpDown" + Convert.ToString(i), true)[0]; control.GetType().GetProperty("Text").SetValue(control, configVal, null); //String value = control.GetType().GetProperty("Text").GetValue(control, null).ToString(); } //combox设置值 for (int i = 1; i <= 2; i++) { Control control = Controls.Find("comboBox" + Convert.ToString(i), true)[0]; control.GetType().GetProperty("SelectedIndex").SetValue(control, configList[22 + i] == "0" ? 1 : 0, null); } } }
/// <summary> /// 获取故障配置值,并显示在相应输入框中【已废弃】 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click_used(object sender, EventArgs e) { //获取静态配置类中的配置值 List<string> configList = FaultInfoConfigValue.getConfigList(); if (null == configList || configList.Count != 25) { XtraMessageBox.Show("读取失败,请完成配置再读取哦!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //1-23循环显示在相应输入框 for (int i = 1; i <= 23; i++) { string configVal = configList[i-1]; Control control = Controls.Find("numericUpDown" + Convert.ToString(i), true)[0]; control.GetType().GetProperty("Text").SetValue(control, configVal, null); //String value = control.GetType().GetProperty("Text").GetValue(control, null).ToString(); } //combox设置值 for (int i = 1; i <= 2; i++) { Control control = Controls.Find("comboBox" + Convert.ToString(i), true)[0]; control.GetType().GetProperty("SelectedIndex").SetValue(control, configList[22 + i] == "0" ? 1:0, null); } XtraMessageBox.Show("指令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); }
/// <summary> /// 监听故障信息检测 /// /// </summary> /// <param name="lastUpdateTime"></param> public void listenFaultInfoConfigValue(Object lastUpdateTime) { int index = 0; while (true) { //超时 if (index >= 10) { XtraMessageBox.Show("读取超时,请稍后重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); break; } //未配置 if (FaultInfoConfigValue.updateTime < Convert.ToInt64(lastUpdateTime)) { XtraMessageBox.Show("故障信息未配置!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); break; } //读取配置成功 if (FaultInfoConfigValue.updateTime > Convert.ToInt64(lastUpdateTime)) { Action action = () => { //获取静态配置类中的配置值 List<string> configList = FaultInfoConfigValue.getConfigList(); if (configList.Count != 25) { XtraMessageBox.Show("读取失败,配置信息不完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //1-23循环显示在相应输入框 for (int i = 1; i <= 23; i++) { string configVal = configList[i - 1]; Control control = Controls.Find("numericUpDown" + Convert.ToString(i), true)[0]; control.GetType().GetProperty("Text").SetValue(control, configVal, null); //String value = control.GetType().GetProperty("Text").GetValue(control, null).ToString(); } //combox设置值 for (int i = 1; i <= 2; i++) { Control control = Controls.Find("comboBox" + Convert.ToString(i), true)[0]; control.GetType().GetProperty("SelectedIndex").SetValue(control, configList[22 + i] == "0" ? 1 : 0, null); } }; Invoke(action); XtraMessageBox.Show("读取成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); break; } index++; Thread.Sleep(1000); } }
/// <summary> /// 保存配置,并发送 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { List<string> faultConfigValues = new List<string>(); //存放故障配置值 int isVerified = 0; //try //{ //检查故障配置合理性 for (int i = 1; i <= 23; i++) { Control control = Controls.Find("numericUpDown" + Convert.ToString(i), true)[0]; String value = control.GetType().GetProperty("Text").GetValue(control, null).ToString(); if (!string.IsNullOrWhiteSpace(value)) //&& value != "0" { faultConfigValues.Add(value); } else { XtraMessageBox.Show("存在未配置通道,请检查更改!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); break; } } isVerified = 23; //combox取值 for (int i = 1; i <= 2; i++) { Control control = Controls.Find("comboBox" + Convert.ToString(i), true)[0]; Type tp = control.GetType(); PropertyInfo pt = control.GetType().GetProperty("SelectedText"); object obj = control.GetType().GetProperty("SelectedText").GetValue(control, null); String value = control.GetType().GetProperty("Text").GetValue(control, null).ToString(); if (value == "高电平") { faultConfigValues.Add(Convert.ToString(1)); isVerified ++; } else if (value == "低电平") { faultConfigValues.Add(Convert.ToString(0)); isVerified ++ ; } else { } } //判断是否完成所有故障配置合理性检查 if (isVerified == 25) { //初始化故障配置信息类 FaultInfoConfigValue.setFaultConfigValue(faultConfigValues); //生成配置信息 byte数组 对应的 16进制字符串数组 string sendCmdStr = FaultInfoConfigValue.getSendCmd(); //将上述16进制字符串数组 拼接为 0x_ _ 格式 的字符串 /*string sendCmdStr = ""; for (int i = 0; i < sendCmd.Length; i++) { sendCmdStr += "0x" + sendCmd[i] + " "; } * */ //下发通道配置信息 //1、关闭线程 //MainForm.thrRecv.Abort(); //所谓的关闭线程 //MainForm.thrRecv.Join(); //挂起 //2、关闭udpcRecv //MainForm.udpcRecv.Close(); //MainForm.udpcRecv = null; //3、创建udpcSend //4、创建thrSend MainForm.thrSend = new Thread(MainForm.SendMessage); //5、开启thrSend(thrSend执行结束后自动关闭udpcSend,销毁thrSend) MainForm.thrSend.Start(sendCmdStr); //6、在主界面显示发送内容 Action action = () => { MainForm.showMessage(MainForm.richTextBox1, string.Format("{0}{1}", "上位机(" + MainForm.localIpep + ")[故障配置信息下发]_" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff", System.Globalization.DateTimeFormatInfo.InvariantInfo) + ":", sendCmdStr)); }; action.Invoke(); XtraMessageBox.Show("指令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); MainForm.isCollecting = true; //this.Close(); } else { XtraMessageBox.Show("存在未配置项,请检查更改!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } //} //catch (Exception exception) //{ //XtraMessageBox.Show(exception.Message, "配置异常", MessageBoxButtons.OK, MessageBoxIcon.Information); //} }