⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 set_button.cs

📁 铁路电务信号设备维修记录系统 c#+acce
💻 CS
📖 第 1 页 / 共 2 页
字号:
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 + -