[Solved] "Device Configuration" flag

Home Forums Software Development [Solved] "Device Configuration" flag

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #7766
    tzaccai
    Participant

    Hi,
    I use 2 “Eye Tracker 4C”, one is configured and one is not.
    i’m developing an application that uses the eye tracker, but when i switch between the 2 eye trackers, or even start with the not configured device – i get no input.

    what is the check i’m missing in order to know if the device is correctly configured or not.

    i’ll just say that on both devices all the init process works fine with no errors (creating, api, device, license, subscribing to streams…)

    Thanks!

    #7769
    Grant [Tobii]
    Keymaster

    Hi @tzaccai, can you kindly clarify what you mean by unconfigured? It will always be necessary when using the Tobii Eye Tracer 4C that you properly setup the device with the attached monitor and calibrate for the user.

    Perhaps you can explain in more detail the intentions with this unconfigured device? Thanks.

    Please also bear in mind, that connecting more than one eye tracker to a single PC is not supported by the Tobii Core Software at this time.

    #7774
    tzaccai
    Participant

    Hi Grant,

    i don’t want to work with unconfigured device, i just want to know whether the device that is currently connected to the computer is connected or not.

    why do i want that?
    because my application uses the ET4C and will be used in several places, i need to be sure that when my user plugs a new ET device (form whatever reason..) i need to send him to config and calibrate.
    currently, when i plug a device that is not configured to the computer, i pass all the setup process with no problem, so programmatically i think i’m fine and online with the ET4C device – but yet, i get no results.

    so therefore, i wish that i could know whether i need to send the user to re/config, because this is a black hole for me.

    and yet, i have no intentions to connect more than 1 device to the same machine.
    working with just 1 is already complicated πŸ˜›

    thanks!

    #7778
    Grant [Tobii]
    Keymaster

    Hi @tzaccai, okay thanks for the clarification. So that I understand, the idea is that should one connect an eye tracker to a system for which a calibration and setup has not been yet launched, we want to know if this is the case or not.

    For example, if a tracker is taken from one system and plugged into another..can the SDK somehow detect that the connected eye tracker is not yet configured?

    Unfortunately, within the Tobii Core SDK Interaction API, calibration and monitor setup is done via the Tobii Tobii Eye Tracking Core Software so the SDK itself will not be able to distinguish if an eye tracker has been configured on a per system basis.

    I will double check with developers, but I don’t think there is a simple way to fulfill your requirements unfortunately. You might consider always launching a calibration upon your program startup, which should at least tell you if the screen is configured or not. In the meantime, I will try and find out if this is indeed possible.

    #7781
    tzaccai
    Participant

    For example, if a tracker is taken from one system and plugged into another..can the SDK somehow detect that the connected eye tracker is not yet configured?

    exactly!

    thanks a lot!
    waiting for a positive response eagerly πŸ˜‰

    #7782
    tzaccai
    Participant

    which should at least tell you if the screen is configured or not.

    what do you mean by that?
    what is the difference between screen and device configuration? aren’t they going together?

    #7790
    Grant [Tobii]
    Keymaster

    Hi @tzaccai, indeed I meant by screen configuration, that part of the setup process whereby you need to align the connected monitor with the eye tracker, so essentially the same as ‘device configuration’. Sorry for any confusion.

    In any event, I have checked with developers and I am sorry to say that at this time, there is no function within the Tobii Core SDK Interaction API that will detect if setup has not been run on the eye tracker as this is handled by the Tobii Core Software.

    However, within the Stream Engine API there is indeed a readiness state (TOBII_DEVICE_READINESS*) that can be used
    to determine if calibration, etc is required.

    You can read more about this @ https://tobii.github.io/stream_engine/#tobii_engineh

    Hopefully this is exactly what you need! Please let us know if we can be of further help.

    #7795
    tzaccai
    Participant

    looks excellent, i will check it.
    thanks @Grant for all the help!

    #7819
    Grant [Tobii]
    Keymaster

    Hi @tzaccai, I just wanted to check up with you that all is working now as hoped! Thanks for the update.

    #7834
    tzaccai
    Participant

    hi @Grant,
    actually, i got in the meantime higher priority missions, so i haven’t got there, but i will definitely update you about the results in the recent weeks πŸ™‚

    #7987
    tzaccai
    Participant

    hi, as promised, i tried working with the READINESS thing, and it worked nice.
    but.. sometimes after a while when i try recheck the “readiness”, and although i see the red lights on the ET and even see the tray icon functions well – i get a return code of: “tobii_error_t.TOBII_ERROR_INTERNAL”
    can u suggest why?

    here is the piece of code:

    
            private bool IsETReady
            {
                get
                {
                    List<tobii_enumerated_device_t> devices = new List<tobii_enumerated_device_t>();
                    tobii_error_t rc = Interop.tobii_enumerate_devices(_tobii_strem_engine, out devices);
    
                    if (rc == tobii_error_t.TOBII_ERROR_NO_ERROR)
                    {
                        if (devices.Count == 0)
                        {
                            logger.Debug("ET Not Ready - Couldn't Find Connected Device");
                            return false;
                        }
                        else if (devices[0].readiness != tobii_device_readiness_t.TOBII_DEVICE_READINESS_READY)
                        {
                            logger.Error(string.Format("ET Readiness Check Failed: {0}", enumName(rc)));
                            return false;
                        }
                        else
                        {
                            logger.Debug("ET is Ready!");
                            return true;
                        }
                    }
                    else
                    {
                        logger.Error(string.Format("ET Readiness Check Failed: {0} - Restarting Service", convertTobiiError(rc)));
                        return false;
                    }
                }
            }
    
    #7990
    tzaccai
    Participant

    another interesting thing, is after receiving this TOBII_ERROR_INTERNAL, i perform tobii_device_reconnect and receive TOBII_ERROR_NO_ERROR but yet, when trying to perform tobii_enumerate_devices right after that – still get TOBII_ERROR_INTERNAL

    #7991
    tzaccai
    Participant

    i can’t edit the previous reply, so i write another one..

    it seems like the engine is disconnected.
    after receiving this TOBII_ERROR_INTERNAL, i perform tobii_engine_reconnect and then tobii_enumerate_devices works fine..
    and the rest is history πŸ™‚

    #7992
    Grant [Tobii]
    Keymaster

    Hi @tzaccai, thanks for reporting this unusual behaviour. I will create the appropriate bug report and attempt to reproduce for the development team and provide you feedback if possible.

    Mat I ask if this issue halting your development in the time being?

    #7997
    tzaccai
    Participant

    it did. but i bypassed it by “reconnecting” to stream engine

Viewing 15 posts - 1 through 15 (of 16 total)
  • You must be logged in to reply to this topic.