コード例 #1
0
        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;
        }