ReflashLogger()

Re-flashes the logger with the firmware.bin file.

C#

[DllImport("RGUSBdrv.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern byte ReflashLogger(char[] FileName, out short Status);

Parameter

[in] FileName

[out] Status

Returns:

0 if file successfully sent.

If the function returns 0 check Status.

Status 0 – Reflash OK

C# Example

private void btnReflash_Click(object sender, EventArgs e)
        {
            if (dlgOpenReflash.ShowDialog() == DialogResult.OK)
            {
                if (Connected) //Check if the logger is connected

                {
                    timerReflash.Start();
                    //Using timer to start the reflash as Async() method
                }
            }
        }

async Task<bool> Reflash(string fwFileName)
        {
            try
            {
                Cursor.Current = Cursors.WaitCursor;
                lblStatus.Text = "Reflash procedure started...";
                byte res = ReflashLogger((fwFileName + '\0').ToCharArray(), out Int16 Status);
                bool error = res == 1 && Status != 0;
                bool connected = false;
                do
                {
                    await Task.Delay(1000);
                    lblStatus.Text = "Logger is updating. Waiting to reconnect...";
                    connected = DeviceIsReady() > 0;
                    if (connected)
                    {
                        await Task.Delay(1000);
                        lblStatus.Text = "";
                        MessageBox.Show("Reflash completed successfully");
                    }

                }
                while (!connected);
                string msg = error ? "Reflash error " + Status.ToString() : "Reflash Completed!";
                lblStatus.Text = msg;
                return !error;
            }
            catch (Exception e)
            {
               return false;
            }
            finally
            {
                Cursor.Current = Cursors.Default;

            }
private async void timer1_Tick(object sender, EventArgs e)
        {
            timerReflash.Enabled = false;
            await Reflash(dlgOpenReflash.FileName);
            Close();
        }

Last updated