// 初始加载
// 初始加载 private void load(){uiLineChart1.Option.Clear();option = uiLineChart1.Option;AddChartData($"线条:1", pointX.ToArray(), pointY.ToArray());SetChartLineStyle();}/// <summary>/// 向图标添加数据/// </summary>/// <param name="name">线条名称</param>/// <param name="arrx">横轴数据</param>/// <param name="arry">纵轴数据</param>private void AddChartData(string name, double[] arrx, double[] arry){var series = option.AddSeries(new UILineSeries("Line1"));for(int i = 0; i <arrx.Length; i++){series.Add(arrx[i], arry[i]);}uiLineChart1.Option.AddSeries(series);}private void SetChartLineStyle(){uiLineChart1.Option.ShowZeroLine = true;uiLineChart1.Option.ShowZeroValue = true;uiLineChart1.Option.XAxis.Clear();var uiTitle = new UITitle { Text = "测试情况", SubText = "氧含量曲线" };uiLineChart1.Option.Title = uiTitle;//设置图表名称uiLineChart1.Option.XAxis.Name = "数量";//横轴名称uiLineChart1.Option.YAxis.Name = "氧含量";//纵轴名称//uiLineChart1.Option.Y2Axis.Name = "金钱2";//纵轴名称uiLineChart1.Option.XAxis.ShowGridLine = true;//横轴网格线uiLineChart1.Option.YAxis.ShowGridLine = true;//纵轴网格线//uiLineChart1.Option.XAxisType = UIAxisType.Value;//横轴类型//uiLineChart1.Option.XAxis.SetRange(DateTime.Now, DateTime.Now.AddMinutes(10));//设置横轴时间范围uiLineChart1.Option.XAxisType = UIAxisType.Value;//横轴类型uiLineChart1.Option.XAxis.SetRange(0, xBiggestValue);//设置横轴范围(1.类型为时间时需要设置时间范围;2.可通过改属性重置图表显示)uiLineChart1.Option.YAxis.SetRange(0, biggestValue);//设置横轴范围(1.类型为时间时需要设置时间范围;2.可通过改属性重置图表显示)uiLineChart1.Refresh();}
// 定时任务读取数据
//每秒钟将堆栈中的数据存入数据库private void timer2_Tick(object sender, EventArgs e){if (stack.Count > 0){string readStr = stack.Pop().ToString();if (!readStr.IsNullOrEmpty() && readStr.StartsWith("!M") && readStr.Split(' ').Length >= 19){string[] readArr = readStr.Split(' ');string oxygenTestValue = readArr[8];string isOKStr = readArr[3];bool isOk = Convert.ToInt32(isOKStr) == 1 ? true : false;string realSpead = readArr[14];string errCode = readArr[18];if (!oxygenTestValue.IsDouble()){oxygenTestValue = "0";}double oxygenValue = Convert.ToDouble(oxygenTestValue);if (oxygenValue < 0){oxygenTestValue = "0";}DataRow row = recordTable.NewRow();row["index"] = productIndex;row["now_date"] = DateTime.Now.ToString("M/d");row["now_time"] = DateTime.Now.ToString("H:m:s:fff");row["set_oxygen"] = txt_OxygenValue.Text;row["oxygen"] = oxygenTestValue;row["ok"] = (isOk ? "合格" : "不合格");row["real_spead"] = realSpead;row["set_speed"] = txt_Spead.Text;row["err_code"] = errCode;row["create_admin_name"] = LoginDataStatic.name;recordTable.Rows.InsertAt(row, 0);if (recordTable.Rows.Count == 11){recordTable.Rows.RemoveAt(10);}uiDataGridView1.DataSource = recordTable;List<int> redIndex = new List<int>();int index = 1;foreach (DataRow r in recordTable.Rows){if (!r["ok"].ToString().Equals("合格")){redIndex.Add(index);}index++;}if (redIndex.Count > 0){foreach (int x in redIndex){uiDataGridView1.Rows[x - 1].DefaultCellStyle.BackColor = Color.Red;}}string sql = "insert into tb_record(id, batch_number, batch_index, product_no, oxygen, height, spead, oxygen_setting, check_result, check_admin_id, check_admin_name, check_time, warn_code, error_code) values ";//sql += " (null, '" + txt_BatchNo.Text + "', " + productIndex + ", '" + comb_CheckSettings.Text + "', '" + oxygenTestValue + "', '" + txt_Height.Text + "', '" + realSpead + "', '" + txt_OxygenValue.Text + "', " + isOKStr + ", " + LoginDataStatic.id + ", '" + LoginDataStatic.name + "', '" + nowTime + "', '" + warnCode + "','" + errCode + "')";try{MySQLHelper mySQLHelper = new MySQLHelper(connStr);mySQLHelper.CreateCommand(sql);mySQLHelper.commonExecute();}catch (Exception ex){}}}}