RealSenseID icon indicating copy to clipboard operation
RealSenseID copied to clipboard

Return from Standby mode

Open mdisg opened this issue 4 years ago • 3 comments

Recently I have played around with the standby mode using the C# Wrapper Class Authenticator. After activating the standby mode enabling the camera preview via Preview.Start returns true but no preview image is received. The callback will not be called in that case. I then tried to do an authentication right after the reconnect and after that the preview works so I think the camera is still in standby mode even after the reconnect to the device. The start result for the preview should be false in that case in my opinion. Could you also please add a way/method to wakeup the unit without starting a dummy authentication e.g. by adding a Method e.g. WakeUp()?

My initial approach was:

  • Call Connect() on my Authenticator instance.
  • Call Standby() and Disconnect()
  • Wait few seconds
  • Call Connect() again on the same authenticator instance.
  • Wait few seconds
  • Call Start() on a newly created Preview instance.

The code:

var serialConfig = new SerialConfig { port = "COM2" };
var authenticator = new Authenticator();
if (authenticator.Connect(serialConfig) == Status.Ok)
{
    authenticator.Standby();
    authenticator.Disconnect();
    Thread.Sleep(3000);
    if (authenticator.Connect(serialConfig) == Status.Ok)
    {
        Thread.Sleep(3000);
        var preview = new Preview(new PreviewConfig
                                      {
                                          cameraNumber = 0,
                                          previewMode = PreviewMode.MJPEG_720P,
                                          portraitMode = true
                                      });
        if (!preview.Start(PreviewImageReceived))
        {
            Console.WriteLine("Start preview failed");
        }
    }
}

The following code with call to authenticator.Authenticate(new AuthArgs()); works:

var serialConfig = new SerialConfig { port = "COM2" };
var authenticator = new Authenticator();
if (authenticator.Connect(serialConfig) == Status.Ok)
{
    authenticator.Standby();
    authenticator.Disconnect();
    Thread.Sleep(3000);
    if (authenticator.Connect(serialConfig) == Status.Ok)
    {
        Thread.Sleep(3000);
        authenticator.Authenticate(new AuthArgs());
        var preview = new Preview(new PreviewConfig
                                      {
                                          cameraNumber = 0,
                                          previewMode = PreviewMode.MJPEG_720P,
                                          portraitMode = true
                                      });
        if (!preview.Start(PreviewImageReceived))
        {
            Console.WriteLine("Start preview failed");
        }
    }
}

mdisg avatar Sep 01 '21 13:09 mdisg

Have you try cameraNumber with different value? I guess you can use cameraNumber = -1

RealSenseSupport avatar Sep 10 '21 03:09 RealSenseSupport

@RealSenseSupport no I did not because there is no documentation or information about that behavior.

mdisg avatar Sep 10 '21 05:09 mdisg

Please keep the object "preview" live. the preview will be stop outside of the inner scope. This is my sample. https://gist.github.com/mengyui/84b0b47c1909c9fc4e6815d9e62fe987

RealSenseSupport avatar Oct 22 '21 03:10 RealSenseSupport