using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.IO.Ports;
namespace GpyAnalyse
{
public partial class FrmAnalyse : Form
{
DataBase db = new DataBase();
public FrmAnalyse()
{
InitializeComponent();
this.skinEngine1.SkinFile = "WaveColor1.ssk";//设定界面的皮肤
//检测程序是否设为开机启动
//Register rg = new Register();
//rg.start_with_windows();
}
private void FrmAnalyse_Load(object sender, EventArgs e)
{
if (sp.IsOpen)
{
sp.Close();
sp.Open();
}
else
sp.Open();
}
//波特率、停止位等在SerialPort控件属性里面设置
private void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string str=sp.ReadExisting();
this.Invoke((EventHandler)(delegate
{
this.txtdata.AppendText(str);
}));
}
private void GetBlank()
{
txtgh.Text = "0";
txtlh.Text = "0";
txtpos.Text = "0";
txtrq.Text = "0";
txtsj.Text = "0";
txtc.Text = "0";
txtSi.Text = "0";
txtMn.Text = "0";
txtP.Text = "0";
txtS.Text = "0";
txtCr.Text = "0";
txtNi.Text = "0";
txtCu.Text = "0";
txtV.Text = "0";
txtTi.Text = "0";
txtNb.Text = "0";
txtAl.Text = "0";
txtFE.Text = "0";
txtCeq.Text = "0";
txtCo.Text = "0";
}
private bool IsUpdateElement(string lh,string pos)
{
DataTable tbl = new DataTable();
string sql = " select * from gpy where lh='" + lh + "'and ypbs='" + pos + "'";
db.GetData(ref tbl, sql);
if ((tbl == null) || (tbl.Rows.Count == 0)) //无冲突,直接使用
return false;
else
return true;
}
//早期程序,其实可以不用控件,直接用数组也可以实现
private void DualData()
{
try
{
string rq;
if (txtdata.Text.Trim() != "")
{
//0213
//2023-11-02T09:15:26,3211855 - 101 - 4,17,C,0.1166,Si,0.0018,Mn,0.1050,P,0.0109,S,0.0220,Cr,0.0439,Ni,0.0233,Cu,0.1399,Mo,0.0040,V,0.0031,Ti,0.0001,Nb,0.0021,Al,0.3575,CEQ,0.16,W,-0.0025,Co,0.0056,Fe%,99.1668,
//140
string[] sptdata = txtdata.Text.Trim().Split(new Char[] { ',' });
int ss = txtdata.Text.Trim().Length;
txtrq.Text = DateTime.Parse(sptdata[0].Substring(8).Remove(10)).ToString("yyyyMMdd");
txtsj.Text = DateTime.Parse(sptdata[0].Substring(19)).ToString("HH:mm:ss");
txtlh.Text = sptdata[1].Remove(8);
txtpos.Text = sptdata[1].Substring(10, 3);
txtgh.Text = "快分";
for (int j = 0; j + 1 < sptdata.Length; j++)
{
switch (sptdata.GetValue(j).ToString().Trim())
{
case "C":
txtc.Text = sptdata.GetValue(j + 1).ToString();
break;
case "Si":
txtSi.Text = sptdata.GetValue(j + 1).ToString();
break;
case "Mn":
txtMn.Text = sptdata.GetValue(j + 1).ToString();
break;
case "P":
txtP.Text = sptdata.GetValue(j + 1).ToString();
break;
case "S":
txtS.Text = sptdata.GetValue(j + 1).ToString();
break;
case "Al":
txtAl.Text = sptdata.GetValue(j + 1).ToString();
break;
case "Cr":
txtCr.Text = sptdata.GetValue(j + 1).ToString();
break;
case "Ni":
txtNi.Text = sptdata.GetValue(j + 1).ToString();
break;
case "Cu":
txtCu.Text = sptdata.GetValue(j + 1).ToString();
break;
case "Mo":
txtMo.Text = sptdata.GetValue(j + 1).ToString();
break;
case "V":
txtV.Text = sptdata.GetValue(j + 1).ToString();
break;
case "Ti":
txtTi.Text = sptdata.GetValue(j + 1).ToString();
break;
case "Nb":
txtNb.Text = sptdata.GetValue(j + 1).ToString();
break;
case "Co":
txtCo.Text = sptdata.GetValue(j + 1).ToString();
break;
case "Fe%":
txtFE.Text = sptdata.GetValue(j + 1).ToString();
break;
case "CEQ":
txtCeq.Text = sptdata.GetValue(j + 1).ToString();
break;
}
}
SavaData();
txtdata.Text = "";
}
}
catch (Exception)
{
//db.WriteLog(ex.Message);
throw;
}
}
public void SavaData()
{
//try
//{
string ypbs = db.serchByString("select max(ypbs) from gpy where lh='" + txtlh.Text.Trim() + "' and gh='快分'");
if (ypbs != "")
txtpos.Text = Convert.ToString(Convert.ToInt16(ypbs) + 1);
string sql = "insert into gpy(LH,GH,YPBS,RQ,SJ,C,SI,MN,P,S,CR,NI,CU,MO,V,TI,NB,AL,FE,CEQ,Co) values("
+ "'" + txtlh.Text.Trim() + "','" + txtgh.Text.Trim() + "','" + txtpos.Text.Trim() + "','" + txtrq.Text.Trim()
+ "','" + txtsj.Text.Trim() + "'," + txtc.Text.Trim() + "," + txtSi.Text.Trim() + ","
+ txtMn.Text.Trim() + "," + txtP.Text.Trim() + "," + txtS.Text.Trim() + ","
+ txtCr.Text.Trim() + "," + txtNi.Text.Trim() + "," + txtCu.Text.Trim() + ","
+ txtMo.Text.Trim() + "," + txtV.Text.Trim() + "," + txtTi.Text.Trim() + ","
+ txtNb.Text.Trim() + "," + txtAl.Text.Trim() + ","
+ txtFE.Text.Trim() + "," + txtCeq.Text.Trim() + "," + txtCo.Text.Trim() + ")";
if (db.InsertOrUpdate(sql) > 0)
{
this.statusmsg.Text = DateTime.Now.ToString("HH:mm:ss") + " 插入一条数据" + this.txtlh.Text + "成功";
}
else
{
this.statusmsg.Text = DateTime.Now.ToString("HH:mm:ss") + " 插入一条数据" + this.txtlh.Text + "失败";
}
//}
//catch (Exception ex)
//{
// //db.WriteLog(ex.Message);
//}
}
private void timerread_Tick(object sender, EventArgs e)
{
DualData();
}
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (this.Visible)
{
this.Hide();
}
else
{
this.Show();
}
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void 隐藏ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Hide();
}
private void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Show();
}
private void btntest_Click(object sender, EventArgs e)
{
DualData();
}
private void btnexit_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void txtdata_TextChanged(object sender, EventArgs e)
{
//string str = txtdata.Text.Remove(txtdata.Text.Length - 2);
if (txtdata.Text.Length > 220)
DualData();
}
}
//该类来自网络,如有侵权,告之必删
class Register
{
/// <summary>
/// 开机启动注册表检查
/// </summary>
public void start_with_windows()
{
RegistryKey hklm = Registry.LocalMachine;
RegistryKey run = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
//未设置开机启动
if (run.GetValue("成分分析系统") == null)
{
register();
}
}
/// <summary>
/// 将程序的开机启动写入注册表
/// </summary>
private void register()
{
string starupPath = Application.ExecutablePath;
//class Micosoft.Win32.RegistryKey. 表示Window注册表中项级节点,此类是注册表装.
RegistryKey loca = Registry.LocalMachine;
RegistryKey run = loca.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
try
{
run.SetValue("成分分析系统", starupPath);
MessageBox.Show("注册表添加成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
loca.Close();
run.Close();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}