public FX3_FWDWNLOAD_ERROR_CODE DownloadFw(string filename, FX3_FWDWNLOAD_MEDIA_TYPE enMediaType) { uint fwSize = 0; if (filename.Equals("")) return FX3_FWDWNLOAD_ERROR_CODE.INVALID_FILE; // Suck-in the data from the .iic file Stream fStream = new FileStream(filename, FileMode.Open, FileAccess.Read); if (fStream == null) return FX3_FWDWNLOAD_ERROR_CODE.INVALID_FILE; fwSize = (uint)fStream.Length; if (fwSize <= 0) { fStream.Close(); return FX3_FWDWNLOAD_ERROR_CODE.INVALID_FILE; } //allocate the memory to hold the firmware image byte[] FwImage = new byte[fwSize]; fStream.Read(FwImage, 0, (int)fwSize); fStream.Close(); // call api to download the image if (enMediaType == FX3_FWDWNLOAD_MEDIA_TYPE.RAM) return DownloadFwToRam(ref FwImage, ref fwSize); else if (enMediaType == FX3_FWDWNLOAD_MEDIA_TYPE.I2CE2PROM) return DownloadUserIMGtoI2CE2PROM(ref FwImage, ref fwSize); else if (enMediaType == FX3_FWDWNLOAD_MEDIA_TYPE.SPIFLASH) return DownloadUserIMGtoSPIFLASH(ref FwImage, ref fwSize); else return FX3_FWDWNLOAD_ERROR_CODE.INVALID_MEDIA_TYPE; }
public FX3_FWDWNLOAD_ERROR_CODE DownloadFw(string filename, FX3_FWDWNLOAD_MEDIA_TYPE enMediaType) { uint fwSize = 0; if (filename.Equals("")) { return(FX3_FWDWNLOAD_ERROR_CODE.INVALID_FILE); } // Suck-in the data from the .iic file Stream fStream = new FileStream(filename, FileMode.Open, FileAccess.Read); if (fStream == null) { return(FX3_FWDWNLOAD_ERROR_CODE.INVALID_FILE); } fwSize = (uint)fStream.Length; if (fwSize <= 0) { fStream.Close(); return(FX3_FWDWNLOAD_ERROR_CODE.INVALID_FILE); } //allocate the memory to hold the firmware image byte[] FwImage = new byte[fwSize]; fStream.Read(FwImage, 0, (int)fwSize); fStream.Close(); // call api to download the image if (enMediaType == FX3_FWDWNLOAD_MEDIA_TYPE.RAM) { return(DownloadFwToRam(ref FwImage, ref fwSize)); } else if (enMediaType == FX3_FWDWNLOAD_MEDIA_TYPE.I2CE2PROM) { return(DownloadUserIMGtoI2CE2PROM(ref FwImage, ref fwSize)); } else if (enMediaType == FX3_FWDWNLOAD_MEDIA_TYPE.SPIFLASH) { return(DownloadUserIMGtoSPIFLASH(ref FwImage, ref fwSize)); } else { return(FX3_FWDWNLOAD_ERROR_CODE.INVALID_MEDIA_TYPE); } }
public void DownloadUserImg(CyFX3Device Fx3, FX3_FWDWNLOAD_MEDIA_TYPE enmMediaType) { // string tmpFilter = Fr.FOpenDialog.Filter; FX3_FWDWNLOAD_ERROR_CODE enmResult = FX3_FWDWNLOAD_ERROR_CODE.FAILED; string tmpFilter = FOpenDialog.Filter; FOpenDialog.Filter = "Firmware Image files (*.img) | *.img"; if ((Fx3 != null) && (FOpenDialog.ShowDialog() == DialogResult.OK)) { if (enmMediaType == FX3_FWDWNLOAD_MEDIA_TYPE.I2CE2PROM) {// I2C EEPROM Download StatLabel.Text = "Programming of I2C EEPROM in Progress..."; Refresh(); enmResult = Fx3.DownloadFw(FOpenDialog.FileName, FX3_FWDWNLOAD_MEDIA_TYPE.I2CE2PROM); StatLabel.Text = "Programming of I2C EEPROM " + Fx3.GetFwErrorString(enmResult); Refresh(); } else {// SPI FLASH FIRMWARE DOWNLOAD StatLabel.Text = "Programming of SPI FLASH in Progress..."; Refresh(); enmResult = Fx3.DownloadFw(FOpenDialog.FileName, FX3_FWDWNLOAD_MEDIA_TYPE.SPIFLASH); //enmResult = Fx3.DownloadFw("C:\\app.img", FX3_FWDWNLOAD_MEDIA_TYPE.SPIFLASH); StatLabel.Text = "Programming of SPI FLASH " + Fx3.GetFwErrorString(enmResult); Refresh(); } } else { StatLabel.Text = "User Cancelled operation"; Refresh(); } FOpenDialog.FileName = ""; FOpenDialog.Filter = tmpFilter; }
public MyThread(Form1 form, USBDeviceList Usb, FX3_FWDWNLOAD_MEDIA_TYPE enmMediaType) { fx = Usb; Fr = form; MediaType = enmMediaType; }