Beispiel #1
0
 private void UpgradeFirmware()
 {
     Application.DoEvents();
     try
     {
         WDS_MainProg.frameWin().DisablePlugAndPlay();
         progressDlg.Show(this);
         _ioph.terminate();
         Thread.Sleep(100);
         ADTRecord adtRecord = _ioph.getAdtRecord();
         FirmwareDownloadResult stoppedWithError = new IO_FD_Main(adtRecord).DownloadFirmware(_latestFirmware, new UpdateFirmwareCallback(firmwareUpdateCallback), null);
         if (stoppedWithError == FirmwareDownloadResult.OK)
         {
             IOPortAddress.HIDAddress hidAddr = adtRecord.PortAddress.hidAddr;
             FormWait wait = new FormWait(hidAddr.VID, hidAddr.PID, hidAddr.Serial, false, 0x1388, 100) {
                 Text = "Enumerating Application..."
             };
             if (wait.ShowDialog() != DialogResult.OK)
             {
                 firmwareUpdateCallback(0, true, "There was an error trying to reenumerate in application mode.", MessageBoxButtons.OK);
                 stoppedWithError = FirmwareDownloadResult.StoppedWithError;
             }
             adtRecord.PortAddress.handle = DDI_HID.instance().open(adtRecord, ' ');
             ADTManager.instance().addADTRecord(adtRecord);
         }
         _ioph = new IOPH_DCP(adtRecord, this);
         _ioph.initialize();
         createCloseWindowController();
         progressDlg.Close();
         WDS_MainProg.frameWin().RestorePlugAndPlay();
         if (stoppedWithError != FirmwareDownloadResult.OK)
         {
             _log.Warn("RF_To_USB_Network_Demo: Mainboard firmware download failed");
             _ioph.terminate();
             base.Close();
         }
     }
     catch
     {
         _log.Warn("RF_To_USB_Network_Demo: Mainboard firmware download failed");
         _ioph.terminate();
         base.Close();
     }
 }