Jump to content

Getting VerboseData at the fastest rate possible.


Recommended Posts

  • 2 months later...
  • Replies 27
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Hi kadakadakScott:   You can follow these step to get 120 frame data per second. - Create an empty scene and add SRanipal_Framework into the scene. (The framework GameObject will be in Prefab folde

Posted Images

Sure. Just a simple example:

public class TestViveProEye
{
    private Vector3 leftOrigin;

    public void StartUpdateData()
    {
        SRanipal_Eye.WrapperRegisterEyeDataCallback(Marshal.GetFunctionPointerForDelegate((SRanipal_Eye.CallbackBasic) UpdateData));
    }

    public void StopUpdateData()
    {
        SRanipal_Eye.WrapperUnRegisterEyeDataCallback(Marshal.GetFunctionPointerForDelegate((SRanipal_Eye.CallbackBasic) UpdateData));
    }

    private void UpdateData(ref EyeData eyeData)
    {
        //Works as expected
        Debug.Log(eyeData.verbose_data.left.gaze_origin_mm);

        //Throws NullReferenceException: Object reference not set to an instance of an object
        //UnityEngine.UnhandledExceptionHandler:<RegisterUECatcher>m__0(Object, UnhandledExceptionEventArgs)
        leftOrigin = eyeData.verbose_data.left.gaze_origin_mm;
        Debug.Log(leftOrigin);
    }
}


It is odd. Storing the eye tracking values locally or passing it to other functions causes a NullReferenceException. However, printing the value to the console works just fine. Maybe I'm missing something on the scope of the callback function(UpdateData), but I'm not sure. 

Link to post
Share on other sites

@Corvus to give you more information.

same problem persists with:

  • SRanipal 1.3.0.9
  • SRanipal Framework Version 2

For the first 70-200 frames (changes each time when registering the callback function) the callback function works fine and as intended. After the first few hundred frames, the NullReferenceException is thrown each following frame. Unregistering and reregistering the callback function repeats the described behavior. 

best,
Stefan

Link to post
Share on other sites
  • 1 month later...

@imarin18

Hello, 

Thank you for your comments, we have been trying to use the two scripts for getting data at 120 Hz but our unity freezes when we try to implement the solutions above.

Please could you elaborate on your second point, what do you mean by adding another counter in the while loop? 

Thanks!

Link to post
Share on other sites
  • 1 month later...

Please sign in to comment

You need to be a member in order to leave a comment

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...