📄 set_button.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Data.OleDb;
namespace D_Equipment_Mis
{
public partial class set_button : Form
{
public set_button()
{
InitializeComponent();
}
public string get_port()
{
string get_port_str = "select com from zd_port";
OleDbConnection myconn = new OleDbConnection(data.connstr);
OleDbCommand get_port_cmd = new OleDbCommand(get_port_str, myconn);
OleDbDataAdapter get_port_da = new OleDbDataAdapter(get_port_cmd);
try
{
myconn.Open();
DataSet get_port_ds = new DataSet();
get_port_da.Fill(get_port_ds);
if (get_port_ds.Tables[0].Rows.Count == 1)
{
return get_port_ds.Tables[0].Rows[0]["com"].ToString();
}
else
{
return "";
}
}
catch(Exception t)
{
MessageBox.Show(t.ToString());
return "";
}
}
public void ini_workshop()
{
string ini_str = "select workshop_name from zd_workshop order by workshop_id";
OleDbConnection myconn = new OleDbConnection(data.connstr);
OleDbCommand ini_cmd = new OleDbCommand(ini_str, myconn);
OleDbDataAdapter ini_da = new OleDbDataAdapter(ini_cmd);
myconn.Open();
DataSet ini_ds = new DataSet();
ini_da.Fill(ini_ds);
if (ini_ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("没有车间数据,请先进行车间数据的维护!");
return;
}
else
{
OleDbDataReader ini_read = ini_cmd.ExecuteReader();
cbo_cj.Items.Clear();
cbo_sel_cj.Items.Clear();
cbo_cj.Items.Add("");
cbo_sel_cj.Items.Add("");
while (ini_read.Read())
{
cbo_cj.Items.Add(ini_read["workshop_name"].ToString());
cbo_sel_cj.Items.Add(ini_read["workshop_name"].ToString());
}
}
}
public void ini_gq(string cj_name)
{
string ini_str = "select group_name from zd_workgroup where workshop_name like @iworkshop_name order by workshop_name,group_id";
OleDbConnection myconn = new OleDbConnection(data.connstr);
OleDbCommand ini_cmd = new OleDbCommand(ini_str, myconn);
ini_cmd.Parameters.Add("iworkshop_name", OleDbType.VarChar).Value = "%" + cj_name + "%";
OleDbDataAdapter ini_da = new OleDbDataAdapter(ini_cmd);
myconn.Open();
DataSet ini_ds = new DataSet();
ini_da.Fill(ini_ds);
if (ini_ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("没有车间数据,请先进行车间数据的维护!");
return;
}
else
{
OleDbDataReader ini_read = ini_cmd.ExecuteReader();
cbo_gq.Items.Clear();
cbo_sel_gq.Items.Clear();
cbo_gq.Items.Add("");
cbo_sel_gq.Items.Add("");
while (ini_read.Read())
{
cbo_gq.Items.Add(ini_read["group_name"].ToString());
cbo_sel_gq.Items.Add(ini_read["group_name"].ToString());
}
}
}
public void ini_e()
{
string ini_str = "select e_name from zd_equipment order by e_id";
using (OleDbConnection myconn = new OleDbConnection(data.connstr))
{
OleDbCommand ini_cmd = new OleDbCommand(ini_str,myconn);
OleDbDataAdapter ini_da = new OleDbDataAdapter(ini_cmd);
myconn.Open();
DataSet ini_ds = new DataSet();
ini_da.Fill(ini_ds);
if (ini_ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("没有设备信息,请进行设备信息的维护");
return;
}
else
{
OleDbDataReader ini_read = ini_cmd.ExecuteReader();
cbo_e.Items.Clear();
cbo_e.Items.Add("");
cbo_sel_e.Items.Clear();
cbo_sel_e.Items.Add("");
while (ini_read.Read())
{
cbo_e.Items.Add(ini_read["e_name"].ToString());
cbo_sel_e.Items.Add(ini_read["e_name"].ToString());
}
}
}
}
public void ini_data(string cj_name,string gq_name,string e_name)
{
string ini_str = "";
ini_str = ini_str + " select button_id as 信息钮号,e_name as 设备名称,workshop_name as 车间名称,group_name as 工区名称 from zd_button";
ini_str = ini_str + " where workshop_name like @iworkshop_name and group_name like @igroup_name and e_name like @ie_name";
ini_str = ini_str + " order by workshop_name,group_name,e_name";
OleDbConnection myconn = new OleDbConnection(data.connstr);
OleDbCommand ini_cmd = new OleDbCommand(ini_str, myconn);
ini_cmd.Parameters.Add("iworkshop_name", OleDbType.VarChar).Value = "%" + cj_name + "%";
ini_cmd.Parameters.Add("igroup_name", OleDbType.VarChar).Value = "%" + gq_name + "%";
ini_cmd.Parameters.Add("ie_name", OleDbType.VarChar).Value = "%" + e_name + "%";
OleDbDataAdapter ini_da = new OleDbDataAdapter(ini_cmd);
myconn.Open();
DataSet ini_ds = new DataSet();
ini_da.Fill(ini_ds);
if (ini_ds.Tables[0].Rows.Count == 0)
{
DataTable mytable = new DataTable();
mytable.Columns.Add("信息钮号");
mytable.Columns.Add("设备名称");
mytable.Columns.Add("车间名称");
mytable.Columns.Add("工区名称");
mytable.Rows.Add(mytable.NewRow());
grid_e_list.DataSource = mytable.DefaultView;
}
else
{
grid_e_list.DataSource = ini_ds.Tables[0].DefaultView;
}
}
public string ReadData(string sPortName, bool blComplete, out string sBh, out DataTable dataTable)
{
string sError = ""; sBh = "";
dataTable = new DataTable();
DataRow dr;
for (int i = 0; i < 2; i++)
{
dataTable.Columns.Add(i.ToString(), typeof(System.String));
}
try
{
this.serialPort1.PortName = sPortName;//端口号
this.serialPort1.DataBits = 8;//数据位
this.serialPort1.StopBits = StopBits.One;//停止位
this.serialPort1.Parity = Parity.None;//校验位
this.serialPort1.BaudRate = 9600;//波特率57600
//this.serialPort1.ReadTimeout = 60 * 60 * 1000;//读超时
//this.serialPort1.WriteTimeout = 60 * 1000;//写超时
this.serialPort1.ReadBufferSize = 1024;
this.serialPort1.WriteBufferSize = 512;
//this.serialPort1.DiscardInBuffer();//清除输入缓冲区
//this.serialPort1.DiscardOutBuffer();//清除输出缓冲区
serialPort1.Close();
if (!serialPort1.IsOpen)
{
serialPort1.Open();
}
this.serialPort1.DiscardInBuffer();//清除输入缓冲区
this.serialPort1.DiscardOutBuffer();//清除输出缓冲区
byte[] byteFirst = new byte[1] { 0x30 };
byte[] byteSecond = new byte[1] { 0x55 };
serialPort1.Write(byteFirst, 0, 1);
System.Threading.Thread.Sleep(600);
this.serialPort1.DiscardInBuffer();//清除输入缓冲区
serialPort1.Write(byteSecond, 0, 1);
System.Threading.Thread.Sleep(25);
if (this.serialPort1.BytesToRead != 9 || this.serialPort1.BytesToRead < 2)
{
MessageBox.Show("请检查设备是否已经连接");
//throw new CommonException("请检查设备是否已经连接");
return "";
}
byte[] byteThird = new byte[9];
serialPort1.Read(byteThird, 0, 9);
sBh = byteThird[1].ToString("X") + byteThird[2].ToString("X");
if (!blComplete)
return "";
byte[] byteSend = new byte[1] { 0x04 };
byte[] byteResult = new byte[1] { 0x00 };
while (byteResult[0] != 0xff)
{
this.serialPort1.DiscardInBuffer();//清除输入缓冲区
serialPort1.Write(byteSend, 0, 1);
System.Threading.Thread.Sleep(25);
byte[] byteData = new byte[serialPort1.BytesToRead];
serialPort1.Read(byteData, 0, serialPort1.BytesToRead);
byteResult[0] = byteData[1];
if (byteResult[0] == 0xff || byteData.Length != 9)
{
this.serialPort1.Write(this.GetNowBCD(), 0, 5);
break;
}
dr = dataTable.NewRow();
string sYear = DateTime.Today.Year.ToString();
string sMonth = byteData[4].ToString("X").PadLeft(2, Convert.ToChar("0"));
if ((sMonth == "11" || sMonth == "12") && (DateTime.Today.Month == 1 || DateTime.Today.Month == 2))
{
sYear = Convert.ToString(DateTime.Today.Year - 1);
}
dr[0] = sYear + "-" + sMonth + "-" + byteData[3].ToString("X").PadLeft(2, Convert.ToChar("0")) + " " + byteData[2].ToString("X").PadLeft(2, Convert.ToChar("0")) + ":" + byteData[1].ToString("X").PadLeft(2, Convert.ToChar("0")) + ":00";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -