public bool checkMemory(byte[] data, progressDelegate progress) { for (int i = 0; i < data.Length; i++) { if (writeCommand((byte)loaderCommands.LC_READ, (byte)i, (byte)(i >> 8)) == 0x55 && waitBytes(1) == 1) { byte[] buf = new byte[1]; uint bytes = 0; if (m_device.Read(buf, 1, ref bytes) == FTDI.FT_STATUS.FT_OK && bytes > 0) { if (buf[0] != data[i]) { return false; } else { if (progress != null) progress(i * 100 / data.Length); } } else { return false; } } else { return false; } } return true; }
internal void updateProgress() { if (listView.InvokeRequired) { progressDelegate pointer = new progressDelegate(updateProgress); Invoke(pointer); } else { this.ProgressBar.PerformStep(); } }
protected void setProgress(int progress) { if (this.InvokeRequired) { progressDelegate d = new progressDelegate(setProgress); this.Invoke(d, new object[] { progress }); } else { this.progressBar.Value = progress; } }
/// <summary> /// Show progress from 0-100% in 10% steps /// </summary> /// <param name="myProgressDelegate">Delegate to run for each 10% of progress</param> private void slowMethod(progressDelegate myProgressDelegate) { for (int i = 0; i < 10; i++) { //Wait for a bit so progress is visible //TODO Replace this as it makes the UI unresponsive System.Threading.Thread.Sleep(500); //Increment the given progress diplayer myProgressDelegate(); //Force form to update Application.DoEvents(); } }
protected void showProgressBar(int total) { if (this.InvokeRequired) { progressDelegate r = new progressDelegate(showProgressBar); this.Invoke(r, new object[] { total }); } else { this.btnSync.Hide(); this.progressBar.Show(); this.progressBar.Minimum = 0; this.progressBar.Maximum = total; } }
private void btnStart_Click(object sender, EventArgs e) { progressDelegate selectedDelegate; if (rbSpinBox.Checked) { selectedDelegate = new progressDelegate(spinBoxUpdater); } else if (rbProgressBar.Checked) { selectedDelegate = new progressDelegate(progressBarUpdater); } else { //trackbar selectedDelegate = new progressDelegate(trackBarUpdater); } resetControls(); slowMethod(selectedDelegate); }
public bool load(byte[] data, progressDelegate progress) { int size = data.Length; int steps = size / kWriteBlockSize + 1; int step = 0; int addr = 0; while (size > 0) { int blockSize = (size > kWriteBlockSize) ? kWriteBlockSize : size; if (writeCommand((byte)loaderCommands.LC_LOAD, (byte)blockSize, (byte)addr, (byte)(addr >> 8)) == 0x55) { byte[] tmpBuf = new byte[blockSize]; for (int i = 0; i < blockSize; i++) tmpBuf[i] = data[addr + i]; if (writeData(tmpBuf) != 0x55) return false; else { if (progress != null) progress((step++) * 100 / steps); } } else { return false; } size -= blockSize; addr += blockSize; } return true; }