// 初始加载
// 初始加载
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)
{
}
}
}
}