Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 internal void updateProgress()
 {
     if (listView.InvokeRequired)
     {
         progressDelegate pointer = new progressDelegate(updateProgress);
         Invoke(pointer);
     }
     else
     {
         this.ProgressBar.PerformStep();
     }
 }
Exemplo n.º 3
0
 protected void setProgress(int progress)
 {
     if (this.InvokeRequired)
     {
         progressDelegate d = new progressDelegate(setProgress);
         this.Invoke(d, new object[] { progress });
     }
     else
     {
         this.progressBar.Value = progress;
     }
 }
Exemplo n.º 4
0
 /// <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();
     }
 }
Exemplo n.º 5
0
 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;
     }
 }
Exemplo n.º 6
0
 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;
     }
 }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
 protected void setProgress(int progress)
 {
     if (this.InvokeRequired)
     {
         progressDelegate d = new progressDelegate(setProgress);
         this.Invoke(d, new object[] { progress });
     }
     else
     {
         this.progressBar.Value = progress;
     }
 }
Exemplo n.º 9
0
 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;
 }