Exemple #1
0
        /// <summary>
        /// 接收数据(线程方法)
        /// </summary>
        public void RecvData(Fmain f1)
        {
            if (!MyPort.IsOpen)
            {
                MyPort.Open();
            }
            result = new byte[MyPort.BytesToRead];
            //Sresult= MyPort.ReadExisting();
            //MyPort.Read(result, 0, MyPort.BytesToRead);
            //f1.DataBox.AppendText(System.Text.Encoding.ASCII.GetString(result)+ "\n");

            #region 读取
            for (int i = 0; i < 64; i++)
            {
                MyPort.Read(result, 0, MyPort.BytesToRead);
                try
                {
                    CSinput[i] = Convert.ToDouble(System.Text.Encoding.ASCII.GetString(result));
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
            }
            #endregion
            //MyThread.Start();
            test();
        }
 /// <summary>
 /// 查询
 /// </summary>
 /// <param name="PortName"></param>
 /// <param name="f1"></param>
 public void QueryData(string PortName, Fmain f1)
 {
     using (SqlConnection con = new SqlConnection(@"server=127.0.0.1,1433;database=DataRecover;Uid=sa;Pwd=wdzs"))
     {
         string         sqlstr1 = string.Format("select top 15 * from {0} order by [RID] desc ", PortName + "Raw");
         string         sqlstr2 = string.Format("select top 256 * from {0} order by [RID] desc ", PortName + "Ret");
         SqlDataAdapter myda1   = new SqlDataAdapter(sqlstr1, con);
         SqlDataAdapter myda2   = new SqlDataAdapter(sqlstr2, con);
         myds1 = new DataSet();
         myds2 = new DataSet();
         try
         {
             //3.打开连接
             con.Open();
             myda1.Fill(myds1, PortName + "Raw");
             myda2.Fill(myds2, PortName + "Ret");
             f1.dataGridView1.DataSource = myds1.Tables[0];
             f1.dataGridView2.DataSource = myds2.Tables[0];
             con.Close();
         }
         catch (SqlException e)
         {
             MessageBox.Show(e.ToString());
         }
     }
 }/// <summary>
Exemple #3
0
 /// <summary>
 /// 退出程序
 /// </summary>
 /// <param name="f1">住窗体引用</param>
 public Control(Fmain f1)
 {
     MyView  = new View(f1);
     MyModel = new Model(f1);
     f       = f1;
     MyView.Start();
 }
        /// <summary>
        /// 保存配置信息
        /// </summary>
        /// <param name="f1"></param>
        public bool SaveFile(Fmain f1)
        {
            if (f1.ListPort.Count > 0)
            {
                #region 事务.保存配置

                using (StreamWriter sw = new StreamWriter(Application.StartupPath + @"\SerConfig", false, Encoding.UTF8))
                {
                    foreach (Serial i in f1.ListPort)
                    {
                        if (i.state)
                        {
                            sw.WriteLine(i.MyPort.PortName.ToString());
                            sw.WriteLine(i.MyPort.BaudRate.ToString());
                            sw.WriteLine(i.MyPort.DataBits.ToString());
                            sw.WriteLine(i.MyPort.StopBits.ToString());
                            sw.WriteLine(i.MyPort.Parity.ToString());
                            sw.Flush();
                        }
                    }
                }

                #endregion
                return(true);
            }
            else
            {
                return(false);
            }
        }
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Fmain f1 = new Fmain();

            Application.Run(f1);
        }
Exemple #6
0
 /// <summary>
 /// 串口初始化
 /// </summary>
 public Serial(Fmain f)
 {
     CSinput              = new double[64];
     sh1                  = new SqlHelper();
     MyPort               = new SerialPort();
     PortID               = "";
     MyPort.DataReceived += delegate(object sender, SerialDataReceivedEventArgs e) { this.RecvData(f); };
     MyThread             = new Thread(test);
 }
Exemple #7
0
        /// <summary>
        /// 打开并侦听
        /// </summary>
        public bool OpenPort(String PortID, Fmain f1)
        {
            bool find = false;

            if (f1.ForAllCheck.Checked == false)
            {
                foreach (Serial i in ListOfPorts)
                {
                    if (i.PortID == PortID)
                    {
                        i.OpenPort();
                        find = true;
                        break;
                    }
                }
                if (!find)
                {
                    Serial s1 = new Serial(f1);
                    if (f1.PortX.SelectedItem == null || f1.BaudX.SelectedItem == null ||
                        f1.DataX.SelectedItem == null || f1.StopX.SelectedItem == null || f1.CheckX.SelectedItem == null)
                    {
                        MessageBox.Show("Config first", "Inform");
                        return(false);
                    }
                    else
                    {
                        s1.OpenPort(f1);
                        if (s1.MyPort.IsOpen)
                        {
                            ListOfPorts.Add(s1);
                        }
                        return(s1.MyPort.IsOpen);
                    }
                }
                else
                {
                    return(true);
                }
            }
            else
            {
                if (ListOfPorts.Count > 0)
                {
                    foreach (Serial i in ListOfPorts)
                    {
                        i.OpenPort();
                    }
                    return(true);
                }
                else
                {
                    MessageBox.Show("No port to open", "Inform");
                    return(false);
                }
            }
        }
Exemple #8
0
 public Model(Fmain f1)
 {
     MySqlHelper  = new SqlHelper();
     MyConf       = new Conf();
     ListOfPorts  = new List <Serial>();
     ListOfThread = new List <Thread>();
     ListOfPorts.Clear();
     ListOfThread.Clear();
     f = f1;
 }
Exemple #9
0
 /// <summary>
 /// 加载配置
 /// </summary>
 /// <param name="f1"></param>
 public void LoadConf(Fmain f1)
 {
     if (MyConf.LoadSeriaoConf(f1, ref ListOfPorts))
     {
         MessageBox.Show("Load config Successfully", "Inform");
     }
     else
     {
         MessageBox.Show("Make sure any config exist", "Error");
     }
 }
Exemple #10
0
        /// <summary>
        /// 加载可用串口配置信息
        /// </summary>
        /// <param name="f1">窗体引用</param>
        /// <param name="ListOfPorts">串口集合</param>
        /// <returns></returns>
        public bool LoadSeriaoConf(Fmain f1, ref List <Serial> ListOfPorts)
        {
            OpenFileDialog openFile = new OpenFileDialog();

            openFile.Filter = "configfile|*.*";
            openFile.ShowDialog();

            if (openFile.FileName.Length > 0)
            {
                using (StreamReader sr = new StreamReader(openFile.FileName, Encoding.UTF8))
                {
                    bool find = false;
                    //Serial m1 = new Serial();
                    string[] s = new string[6];
                    #region 读取记录
                    for (; !sr.EndOfStream; find = false)
                    {
                        for (int i = 0; i < 6; i++)
                        {
                            s[i] = sr.ReadLine().ToString();
                        }
                        foreach (Serial i in ListOfPorts)
                        {
                            if (i.PortID.Equals(s[0]))
                            {
                                find = true;
                                break;
                            }
                        }
                        if (!find)
                        {
                            ListOfPorts.Add(new Serial(s));
                        }
                        else
                        {
                            sr.ReadLine();
                            sr.ReadLine();
                            sr.ReadLine();
                            sr.ReadLine();
                            sr.ReadLine();
                        }
                    }
                    #endregion
                }
            }
            if (!(ListOfPorts.Count > 0))
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Exemple #11
0
 /// <summary>
 /// 删除串口
 /// </summary>
 /// <param name="f1"></param>
 public void DelPort(Fmain f1)
 {
     foreach (string j in f1.PortBox.SelectedItems)
     {
         for (int i = ListOfPorts.Count - 1; i > -1; i--)
         {
             if (j.Equals(ListOfPorts.ElementAt(i).PortID))
             {
                 ListOfPorts.ElementAt(i).ClosePort();
                 ListOfPorts.RemoveAt(i);
             }
         }
     }
 }
Exemple #12
0
        /// <summary>
        /// 关闭名为PortID的串口
        /// </summary>
        /// <param name="PortID"></param>
        public bool ClosePort(String PortID, Fmain f1)
        {
            //ListOfPorts.Find(x => x.PortID == PortID).ClosePort();
            bool find = false;

            if (f1.ForAllCheck.Checked == false)
            {
                foreach (Serial i in ListOfPorts)
                {
                    if (i.PortID == PortID)
                    {
                        i.ClosePort();
                        find = true;
                        break;
                    }
                }
                if (!find)
                {
                    MessageBox.Show("No such port found", "Inform");
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            else
            {
                if (ListOfPorts.Count > 0)
                {
                    foreach (Serial i in ListOfPorts)
                    {
                        i.ClosePort();
                    }
                    return(true);
                }
                else
                {
                    MessageBox.Show("No port to close", "Inform");
                    return(false);
                }
            }
        }
Exemple #13
0
 /// <summary>
 /// 切换选项卡页面
 /// </summary>
 /// <param name="f"></param>
 /// <param name="m1"></param>
 public void SwitchTab(Fmain f, Model m1, string t1)
 {
     if (t1.Equals("tabPage3"))
     {
         f.DBSwitch.Items.Clear();
         foreach (Serial i in m1.ListOfPorts)
         {
             f.DBSwitch.Items.Add(i.MyPort.PortName);
         }
     }
     else
     {
         f.Channel.Items.Clear();
         foreach (Serial i in m1.ListOfPorts)
         {
             f.Channel.Items.Add(i.MyPort.PortName);
         }
     }
 }
Exemple #14
0
        /// <summary>
        /// (重载)打开控件所示串口
        /// </summary>
        /// <param name="f1"></param>
        public void OpenPort(Fmain f1)
        {
            try
            {
                if (!MyPort.IsOpen)
                {
                    #region 事务.串口打开
                    PortID          = f1.PortID.Text.ToString();
                    MyPort.PortName = f1.PortX.SelectedItem.ToString();
                    MyPort.BaudRate = Convert.ToInt32(f1.BaudX.SelectedItem.ToString());
                    switch (f1.CheckX.SelectedIndex)
                    {
                    case 0:
                        MyPort.Parity = Parity.None;
                        break;

                    case 1:
                        MyPort.Parity = Parity.Odd;
                        break;

                    case 2:
                        MyPort.Parity = Parity.Even;
                        break;

                    case 3:
                        MyPort.Parity = Parity.Mark;
                        break;

                    case 4:
                        MyPort.Parity = Parity.Space;
                        break;
                    }

                    MyPort.DataBits = Convert.ToInt32(f1.DataX.SelectedItem.ToString());

                    switch (f1.StopX.SelectedIndex)
                    {
                    case 0:
                        MyPort.StopBits = StopBits.One;
                        break;

                    case 1:
                        MyPort.StopBits = StopBits.Two;
                        break;

                    case 2:
                        MyPort.StopBits = StopBits.OnePointFive;
                        break;
                    }


                    #endregion
                    MyPort.Open();
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString() + "Open faild" + "\n" + "1.Check config" + "\n"
                                + "2.Check device available" + "\n" + "3.Check device driver", "Error");
            }
        }
Exemple #15
0
 public View(Fmain f1)
 {
     f = f1;
 }
        /// <summary>
        /// 加载配置信息
        /// </summary>
        /// <param name="f1"></param>
        public void LoadFile(Fmain f1)
        {
            OpenFileDialog openFile = new OpenFileDialog();

            openFile.Filter = "configfile|*.*";
            openFile.ShowDialog();

            if (openFile.FileName.Length > 0)
            {
                using (StreamReader sr = new StreamReader(openFile.FileName, Encoding.UTF8))
                {
                    Serial m1 = new Serial();
                    for (; !sr.EndOfStream;)
                    {
                        m1.MyPort.PortName = sr.ReadLine();
                        if (!f1.PortBox.Items.Contains(m1.MyPort.PortName))
                        {
                            #region 事务.加载配置信息
                            m1.MyPort.BaudRate = Convert.ToInt32(sr.ReadLine().ToString());
                            m1.MyPort.DataBits = Convert.ToInt32(sr.ReadLine().ToString());
                            switch (sr.ReadLine().ToString())
                            {
                            case "0":
                                m1.MyPort.StopBits = StopBits.One;
                                break;

                            case "1.5":
                                m1.MyPort.StopBits = StopBits.Two;
                                break;

                            case "2":
                                m1.MyPort.StopBits = StopBits.OnePointFive;
                                break;
                            }
                            switch (sr.ReadLine().ToString())
                            {
                            case "None":
                                m1.MyPort.Parity = Parity.None;
                                break;

                            case "Odd":
                                m1.MyPort.Parity = Parity.Odd;
                                break;

                            case "Even":
                                m1.MyPort.Parity = Parity.Even;
                                break;

                            case "Mark":
                                m1.MyPort.Parity = Parity.Mark;
                                break;

                            case "Space":
                                m1.MyPort.Parity = Parity.Space;
                                break;
                            }
                            f1.ListPort.Add(m1);
                            #endregion
                            #region 视图.添加监视串口

                            f1.PortBox.Items.Add(m1.MyPort.PortName);

                            #endregion
                        }
                        else
                        {
                            sr.ReadLine();
                            sr.ReadLine();
                            sr.ReadLine();
                            sr.ReadLine();
                            sr.DiscardBufferedData();
                        }
                    }
                }
            }
        }