Esempio n. 1
0
        //固件修复按钮
        private void button8_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                int i;
                button8.Text    = "等待中...";
                button6.Enabled = false;
                button5.Enabled = false;
                button8.Enabled = false;
                AllowSelect     = false;

                //for (i = 0; i < 30; i++)
                while (true)
                {
                    serialPort1.Write("l");
                    if (serialPort1.BytesToRead != 0 && serialPort1.ReadByte() == 'C')
                    {
                        break;
                    }
                    button8.Text += ".";
                    if (button8.Text.Length > 6)
                    {
                        button8.Text = "等待中.";
                    }
                    System.Threading.Thread.Sleep(200);
                }

                /*if (i >= 30)
                 * {
                 *  button6.Enabled = true;
                 *  button5.Enabled = true;
                 *  button8.Enabled = true;
                 *  AllowSelect = true;
                 *  return;
                 * }*/

                normalUpdate = false;

                //因为要访问UI资源,所以需要使用invoke方式同步ui
                this.Invoke((EventHandler)(delegate
                {
                    button8.Text = "修复中.";
                }
                                           ));

                ymodem            = new Ymodem.Ymodem();
                ymodem.serialPort = serialPort1;
                ymodem.Path       = textBox3.Text.ToString();
                ymodem.PortName   = comboBoxComNum.SelectedItem.ToString();
                ymodem.BaudRate   = Convert.ToInt32(comboBoxBaud.SelectedItem.ToString());
                downloadThread    = new System.Threading.Thread(ymodem.YmodemUploadFile);
                ymodem.NowDownloadProgressEvent += new EventHandler(NowDownloadProgressEvent);
                ymodem.DownloadResultEvent      += new EventHandler(DownloadFinishEvent);
                downloadThread.Start();
            }
        }
Esempio n. 2
0
        //固件升级按钮
        private void button6_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                serialPort1.WriteLine("update");
                System.Threading.Thread.Sleep(500);

                button6.Text    = "升级中";
                button6.Enabled = false;
                button5.Enabled = false;
                button8.Enabled = false;
                AllowSelect     = false;

                ymodem            = new Ymodem.Ymodem();
                ymodem.serialPort = serialPort1;
                ymodem.Path       = textBox3.Text.ToString();
                ymodem.PortName   = comboBoxComNum.SelectedItem.ToString();
                ymodem.BaudRate   = Convert.ToInt32(comboBoxBaud.SelectedItem.ToString());
                downloadThread    = new System.Threading.Thread(ymodem.YmodemUploadFile);
                ymodem.NowDownloadProgressEvent += new EventHandler(NowDownloadProgressEvent);
                ymodem.DownloadResultEvent      += new EventHandler(DownloadFinishEvent);
                downloadThread.Start();
            }
        }
        private void downloadButton_Click(object sender, EventArgs e)
        {
            settings.pathlog = this.pathTextBox.Text;
            //  settings.comlog = this.SerialPortComboBox.Text;
            settings.FileSizelog = this.labelFileSize.Text;
            settings.Save();

            serialPort.PortName = SerialPortComboBox.Text;

            Regex r = new Regex(fileName);//("DWDM");
            Match m = r.Match(Path.GetFileNameWithoutExtension(pathTextBox.Text.ToUpper()));

            if (m.Success)// "DWDM.bin")
            {
                Button button = (Button)sender;

                if (button.Text == "Update")
                {
                    try
                    {
                        //serialPort.PortName = SerialPortComboBox.Text;
                        //  serialPort.BaudRate = Convert.ToInt32(BaudRateComboBox.SelectedItem.ToString());
                        serialPort.BaudRate = 115200;
                        serialPort.Open();
                    }
                    catch   //错误处理
                    {
                        MetroMessageBox.Show(this, "\r\n\r\n" + "The equipment was unable to connect. Please check the USB connection", "Error", MessageBoxButtons.OK);
                        return;
                    }
                    serialPort.Write(updateCMD);              //("upgrade\r");          //写数据         foh-100:upgrade ?  \r\n   dwdm:atcmd :FUNC:UPGR\r   foh-8:upgrade\r
                    System.Threading.Thread.Sleep(200);       //延时200ms
                    string str   = serialPort.ReadExisting(); //字符串方式读       20200310- "dowload bin file enter 1 \r\nexecute app      enter 2 \r\n-------------------------\r\n\0dowload bin file enter 1 \r\nexecute app      enter 2 \r\n-------------------------\r\n\0"
                    int    index = 0;

                    if (updateCMD == "upgrade\r")  //foh-100
                    {
                        index = str.IndexOf("Enter 9", index);
                        if (index < 0)
                        {
                            index = 0;
                            index = str.IndexOf("Enter  1", index);
                            if (index < 0)
                            {
                                MetroMessageBox.Show(this, "\r\n\r\n" + "The equipment was unable to connect. Please check the USB connection", "Error", MessageBoxButtons.OK);
                                serialPort.Close();
                                return;
                            }
                        }
                        else
                        {
                            serialPort.Write("9");              //写数据
                            System.Threading.Thread.Sleep(200); //延时200ms
                            str   = serialPort.ReadExisting();  //字符串方式读
                            index = 0;
                            index = str.IndexOf("Enter  1", index);
                            if (index < 0)
                            {
                                MetroMessageBox.Show(this, "\r\n\r\n" + "The equipment was unable to connect. Please check the USB connection", "Error", MessageBoxButtons.OK);
                                serialPort.Close();
                                return;
                            }
                        }
                    }

                    else
                    {
                        index = str.IndexOf("enter 0", index);  //"Enter  9"
                        if (index < 0)
                        {
                            index = 0;
                            index = str.IndexOf("enter 1", index);   //"Enter  1"
                            if (index < 0)
                            {
                                MetroMessageBox.Show(this, "\r\n\r\n" + "The equipment was unable to connect. Please check the USB connection", "Error", MessageBoxButtons.OK);
                                serialPort.Close();
                                return;
                            }
                        }
                        else
                        {
                            serialPort.Write("0");                 //写数据    //9
                            System.Threading.Thread.Sleep(200);    //延时200ms
                            str   = serialPort.ReadExisting();     //字符串方式读
                            index = 0;
                            index = str.IndexOf("enter 1", index); //"Enter  1"
                            if (index < 0)
                            {
                                MetroMessageBox.Show(this, "\r\n\r\n" + "The equipment was unable to connect. Please check the USB connection", "Error", MessageBoxButtons.OK);
                                serialPort.Close();
                                return;
                            }
                        }
                    }

                    serialPort.Write("1");               //写数据  //  1
                    System.Threading.Thread.Sleep(2000); //延时200ms
                    serialPort.Close();
                    this.circularProgressBar1.Value = 0; //DownloadProgressBar
                    button.Text     = "Updating";
                    ymodem          = new Ymodem.Ymodem();
                    ymodem.Path     = pathTextBox.Text.ToString();
                    ymodem.PortName = SerialPortComboBox.SelectedItem.ToString();
                    ymodem.BaudRate = 115200;// Convert.ToInt32(BaudRateComboBox.SelectedItem.ToString());
                    downloadThread  = new System.Threading.Thread(ymodem.YmodemUploadFile);
                    ymodem.NowDownloadProgressEvent += new EventHandler(NowDownloadProgressEvent);
                    ymodem.DownloadResultEvent      += new EventHandler(DownloadFinishEvent);
                    downloadThread.Start();
                }
            }
            else
            {
                MetroMessageBox.Show(this, "\r\n\r\n" + "Please select a different file type and try again." + "\r\n"
                                     + "e.g.  " + fileName + " ...", "Error", MessageBoxButtons.OK);
            }
        }