private int processUIcmd(QueueData cm) { int restFlag = 0; int time = 0; int i = 0; QueueData c = new QueueData(); MyportData sendData = new MyportData(); BData hs = (BData)cm.o; type = hs.type; id = hs.id; Path = hs.path; startA = hs.startA; serialPort1.Close(); serialPort1.BaudRate = 460800; serialPort1.PortName = hs.COM; serialPort1.Open(); setProgressBar1("Value", 0); i = 0; while (true) { if (runCmd(0x01, null, 0, 50) >= 0) { setText("debug", "转板进入iap成功\r\n"); break; } i++; if (i > 20) { setText("debug", "转板进入iap失败\r\n"); return -1; } Thread.Sleep(1); } downlandCFL(); //if ((type == 12) || (type == 15)) //{ // try // { // serialPort1.Close(); // serialPort1.BaudRate = 115200; // serialPort1.PortName = hs.COM; // serialPort1.Open(); // } // catch // { // setText("debug", "未能打开串口,请先通电用普通方式找到串口,或手动修改XML文件填写端口重启软件\r\n"); // return -1; // } // setText("debug", "已打开串口\r\n"); // i = 0; // while (true) // { // i++; // byte[] b = Encoding.ASCII.GetBytes("Rest\r"); // //b = sendData.getByte(); // serialPort1.Write(b, 0, b.Length); //发送命令 // if (i > 10) // { // setText("debug", "主板复位失败\r\n"); // break; //超时 不是转板 // } // Thread.Sleep(20); // while (portRecQueue.TryDequeue(out c)) // { // if (c.cmd == "port2Thread") // { // MyportData tem = (MyportData)c.o; // if (tem.cmd == 0x11) // { // setText("debug", "主板进入iap成功\r\n"); // serialPort1.BaudRate = 460800; // i = 0; // break; // } // } // } // if (i == 0) // break; // } // serialPort1.BaudRate = 460800; // i = 0; // Thread.Sleep(5); //while (true) //{ // if (runCmd(0x40, null, 0, 20) >= 0) // { // setText("debug", "转板进入iap成功\r\n"); // break; // } // i++; // if (i > 10) // { // setText("debug", "转板进入iap失败\r\n"); // return -1; // } // Thread.Sleep(1); //} // if (type == 12) // { // i = downlandOther(hs.downMode); // return i; // } // else // { // i = downlandCFL(); // return i; // } //} serialPort1.Close(); return 0; }