private static FirmwareItem ParseXMLComment(string comment, string filePath) { try { ASCIIEncoding encoding = new ASCIIEncoding(); MemoryStream inStream = new MemoryStream(encoding.GetBytes(comment)); inStream.Seek(0L, SeekOrigin.Begin); XmlDocument document = new XmlDocument(); document.Load(inStream); FirmwareItem item = new FirmwareItem(filePath); XmlNode subNode = document.SelectSingleNode("/FirmwareDef/Version/text()"); if (subNode != null) item.version = new FirmwareVersion(subNode.Value.Trim()); subNode = document.SelectSingleNode("/FirmwareDef/Date/text()"); if (subNode != null) item.date = DateTime.Parse(subNode.Value.Trim(), CultureInfo.InvariantCulture); subNode = document.SelectSingleNode("/FirmwareDef/Type/text()"); if (subNode != null) item.type = new FirmwareType(subNode.Value.Trim()); subNode = document.SelectSingleNode("/FirmwareDef/Name/text()"); if (subNode != null) item.name = subNode.Value.Trim(); subNode = document.SelectSingleNode("/FirmwareDef/TargetEnvironment/text()"); if (subNode != null) item.targetEnvironment = (FirmwareTargetEnvironment) Enum.Parse(typeof(FirmwareTargetEnvironment), subNode.Value.Trim(), true); subNode = document.SelectSingleNode("/FirmwareDef/Description/text()"); if (subNode != null) item.description = subNode.Value.Trim().Replace("\r\n", "<BR>").Replace("\r", "<BR>").Replace("\n", "<BR>"); subNode = document.SelectSingleNode("/FirmwareDef/Devices"); ADCRManager.instance().parseCompatibleDevices(item.supportedDeviceList, subNode); return item; } catch (Exception exception) { GlobalServices.ErrMsg("FirmwareDowload", "Error at ParseXMLComment! \n" + exception.Message); GlobalServices.msgBox("Error at ParseXMLComment! \n" + exception.Message, "Error!"); return null; } }
private bool loadFirmwareCode(FirmwareItem firmware, Difference[] fwChanges) { Application.DoEvents(); try { bool flag = true; ((IOPH_DATA) this._ioph).AllowDeviceHandover(this._adtRec); Thread.Sleep(100); IO_FD_Main main = new IO_FD_Main(this._adtRec); if (main.DownloadFirmware(firmware, null, fwChanges) == FirmwareDownloadResult.OK) { ADTManager.instance().addADTRecord(this._adtRec); } else { flag = false; MessageBox.Show("Failed to load the appropreate firmware!\nPlease try again!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand); } ((IOPH_DATA) this._ioph).ReconnectDevice(this._adtRec); return flag; } catch (Exception exception) { _log.Error("Failed loading firmware code: " + exception.Message); this._ioph.terminate(); base.Close(); return false; } }
private static IIOFirmwareDownload GetIOFD(ADTRecord adtRecord, FirmwareItem item) { switch (adtRecord.DeviceInfo.DeviceType.TypeID) { case DeviceTypeID.SDBC_8: return new IO_FD_SUB8051(adtRecord); case DeviceTypeID.LoadBoard: return new IO_FD_LoadBoard(adtRecord); case DeviceTypeID.EZLink: return new IO_FD_SUB8051(adtRecord); case DeviceTypeID.SRW002: return new IO_FD_SUB8051(adtRecord); case DeviceTypeID.SRW006: return new IO_FD_HID(adtRecord); case DeviceTypeID.SRW007: return new IO_FD_SUB8051(adtRecord); case DeviceTypeID.SRW008: return new IO_FD_SUB8051(adtRecord); case DeviceTypeID.SRW009: return new IO_FD_SUB8051(adtRecord); case DeviceTypeID.UDP001: if (adtRecord.DeviceInfo.DeviceType.TypeID.ToString() == item.findTargetItemName()) return new IO_FD_HID(adtRecord); return new IO_FD_HID_DCP2(adtRecord); case DeviceTypeID.ToolStick: case DeviceTypeID.LCDBB_F930: case DeviceTypeID.WIMB930: return new IO_FD_HID_ToolStick(adtRecord); } throw new Exception("The board attached is not supported by the Firmware Downloader."); }
public FirmwareDownloadResult DownloadFirmware(FirmwareItem item, UpdateFirmwareCallback callback, Difference[] fwChanges) { _driver = GetIOFD(_adtRecord, item); return _driver.DownloadFirmware(item.firmwareLocation, callback, fwChanges); }
public static bool NewFirmwareExists( string firmwarePath, DeviceDescriptor connectedDeviceDescriptor, bool checkFwType, string fwType, out FirmwareItem newFirmware, FirmwareTargetEnvironment[] targetEnvironmentSet ) { FirmwareItem[] itemArray = GetFirmwareAvailable( firmwarePath, connectedDeviceDescriptor, checkFwType, fwType, true, targetEnvironmentSet ); if (itemArray.Length != 0) { newFirmware = itemArray[itemArray.Length - 1]; if (fwType != null && !(connectedDeviceDescriptor.FirmwareType.Name == fwType)) return true; if (newFirmware.version.VersionNumber > connectedDeviceDescriptor.FirmwareVersion.VersionNumber) return true; } else newFirmware = null; return false; }
private void MainBoardFirmwareDownloadFailed(FirmwareItem a_item, string a_errorMessage) { string str = this.getStringResource("txtStep1Text_4"); str.Replace("xxx", a_item.type.Name + " " + a_item.version.Name); this.txtStep1.Text = str + "\r\n" + a_errorMessage; this.tabControl.TabPages[2].Enabled = false; this.tabControl.TabPages[1].Enabled = true; this.tabControl.SelectedTab = this.tabControl.TabPages[1]; this.btnStep1Abort.Focus(); this.btnStep2Next.Enabled = false; }
private void WirelessNodeFirmwareDownloadFailed(FirmwareItem a_item, string a_errorMessage) { this.txtStep3.Text = "Download process has failed." + a_errorMessage + "\r\n" + this.getStringResource("txtStep3Text_7"); this.btnStep4Next.Enabled = true; this.btnStep4Prev.Enabled = true; }