示例#1
0
 private void btn_BL_connet_Click(object sender, EventArgs e)
 {
     Bl_Handler = BL_Handler.Enumerate(0x15A2, new[] { 0x0073 }).FirstOrDefault();
     if (Bl_Handler != null)
     {
         Bl_Handler.LogUpdate    += UpdateLogFromHandler;
         Bl_Handler.DataRecieved += PushReceiveData;
         Bl_Handler.Inserted     += DeviceInserted;
         Bl_Handler.Removed      += DeviceRemoved;
         Bl_Handler.StartListen();
     }
 }
示例#2
0
        private void btn_onekeyupdate_Click(object sender, EventArgs e)
        {
            btn_onekeyupdate.Enabled = false;
            bool BL_connect = false;

            Viewer.UpdateProgressBarCallback UpdateProgressBar = Assign_ProgressBar;
            Viewer.UpadateLogInvoke          UpdateLog         = LogUpdate;

            if (Viewer.fingerPrint == null)
            {
                Viewer.fingerPrint = new FingerPrint_API.FingerPrint();
                Viewer.fingerPrint.AutoConnect_Interval = 5000;
            }
            if (!Viewer.fingerPrint.IsConnected)
            {
                InitialDvice(true);
            }
            bool force_try = false;

            if (!Viewer._Initial)
            {
                DialogResult dr = MessageBox.Show("Can't Find Appropriate Device, Try Recovery?", "Connect Failed", MessageBoxButtons.YesNo);

                force_try = (dr == DialogResult.Yes) ? true : false;
            }

            if (Viewer._Initial || force_try)
            {
                int BLtry_count = 0;
                Invoke(UpdateLog, new Object[] { "Initializing FW Update Menager...", true });
                Invoke(UpdateLog, new Object[] { "Please Waiting...", false });
                while (Bl_Handler == null && BLtry_count < 5)
                {
                    Invoke(UpdateLog, new Object[] { "...", false });
                    System.Threading.Thread.Sleep(1000);
                    Bl_Handler = BL_Handler.Enumerate(0x15A2, new[] { 0x0073 }).FirstOrDefault();
                    BLtry_count++;
                }
                Invoke(UpdateLog, new Object[] { " ", true });
                if (Bl_Handler != null)
                {
                    Bl_Handler.LogUpdate    += UpdateLogFromHandler;
                    Bl_Handler.DataRecieved += ReceiveDataFlag;
                    Bl_Handler.StartListen();
                    BL_connect = true;
                    Invoke(UpdateLog, new Object[] { "Initializing FW Update Menager Success...", true });
                }
                else
                {
                    Invoke(UpdateLog, new Object[] { "Initializing Failed, Recovery Function Start...", true });

                    Sdp_Handler = SDP_Handler.Enumerate(0x1FC9, new[] { 0x0130 }).FirstOrDefault();
                    if (Sdp_Handler != null)
                    {
                        Sdp_Handler.DataRecieved += ReceiveDataFlag;
                        Sdp_Handler.StartListen();

                        Setup_BootLoader();
                    }
                    else
                    {
                        Invoke(UpdateLog, new Object[] { "Recovery Failed, Terminated...", true });
                    }
                }

                System.Threading.Thread.Sleep(3000);
                // Reconnect
                if (!BL_connect)
                {
                    Bl_Handler = BL_Handler.Enumerate(0x15A2, new[] { 0x0073 }).FirstOrDefault();
                    if (Bl_Handler != null)
                    {
                        Bl_Handler.LogUpdate    += UpdateLogFromHandler;
                        Bl_Handler.DataRecieved += ReceiveDataFlag;
                        Bl_Handler.StartListen();
                        BL_connect = true;
                        Invoke(UpdateLog, new Object[] { "Initializing FW Update Menager Success...", true });
                    }
                    else
                    {
                        Invoke(UpdateLog, new Object[] { "Initializing FW Upgrade Menager Fail... Terminated", true });
                    }
                }

                if (BL_connect)
                {
                    string ImageFilePath = tb_allinone_path.Text;
                    //Check Recipe//
                    if (!File.Exists("Auto_Recipe.txt"))
                    {
                        Invoke(UpdateLog, new Object[] { "Recipe Loss, Please Contact For Support", true });
                    }
                    else
                    {
                        Check_Recipe();
                        byte[] Image_data = Load_Image(ImageFilePath);
                        if (File_Support)
                        {
                            Do_Command(Image_data);
                        }
                        Invoke(UpdateLog, new Object[] { "Process Done", true });
                    }
                }
                if (File_Support)
                {
                    Viewer._Initial = false;
                    int try_count = 0;
                    Viewer.fingerPrint.Dispose();
                    Viewer.fingerPrint = new FingerPrint_API.FingerPrint();
                    rt_log.Text       += "Verificating...\n";
                    while (!Viewer._Initial && try_count < 3)
                    {
                        try_count++;
                        System.Threading.Thread.Sleep(3000);
                        InitialDvice(false);
                    }
                    if (!Viewer._Initial)
                    {
                        Invoke(UpdateLog, new Object[] { "Updated Failed Please Check Your Image File And Restart Upgrade Program", true });
                    }
                }
            }
            btn_onekeyupdate.Enabled = true;
        }