Home › Forums › Software Development › [Solved] "Device Configuration" flag
Tagged: 4C, Configuration, internal, readuness
- This topic has 15 replies, 2 voices, and was last updated 6 years, 5 months ago by Grant [Tobii].
- AuthorPosts
- 04/01/2018 at 14:43 #7766tzaccaiParticipant
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!
04/01/2018 at 21:41 #7769Grant [Tobii]KeymasterHi @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.
07/01/2018 at 09:30 #7774tzaccaiParticipantHi 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!
07/01/2018 at 21:01 #7778Grant [Tobii]KeymasterHi @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.
08/01/2018 at 09:04 #7781tzaccaiParticipantFor 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 π08/01/2018 at 09:22 #7782tzaccaiParticipantwhich 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?09/01/2018 at 10:05 #7790Grant [Tobii]KeymasterHi @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.
10/01/2018 at 10:16 #7795tzaccaiParticipantlooks excellent, i will check it.
thanks @Grant for all the help!22/01/2018 at 08:40 #7819Grant [Tobii]KeymasterHi @tzaccai, I just wanted to check up with you that all is working now as hoped! Thanks for the update.
24/01/2018 at 11:35 #7834tzaccaiParticipanthi @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 π12/03/2018 at 17:10 #7987tzaccaiParticipanthi, 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; } } }
13/03/2018 at 09:35 #7990tzaccaiParticipantanother 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
13/03/2018 at 09:58 #7991tzaccaiParticipanti 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 π13/03/2018 at 10:03 #7992Grant [Tobii]KeymasterHi @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?
13/03/2018 at 16:37 #7997tzaccaiParticipantit did. but i bypassed it by “reconnecting” to stream engine
- AuthorPosts
- You must be logged in to reply to this topic.