Home › Forums › Software Development › [Solved] Enabling Tobii Eye Tracking programmatically C#
- This topic has 11 replies, 3 voices, and was last updated 6 years, 4 months ago by Thomas Booijink.
- AuthorPosts
- 12/06/2018 at 16:50 #8450Thomas BooijinkParticipant
Hi everyone,
As the title may suggest I’m trying to enable tobii eye tracking programmatically. I’m using the Core SDK.
eyehost.EnableConnection(); doesn’t seem to do the trick. Do I need to set the state through context.SetStateAsync or is there another method of doing so? (Or is it impossible to do?)
Thanks in advance!
13/06/2018 at 11:09 #8452Grant [Tobii]KeymasterHi @thomas6886, I assume you are referring to a means by which to turn off/on the eye tracker itself programatically? ie the functionality that is already present within the system tray icon of the Tobii Core Software?
I am afraid for the time being, this is not a feature we include in the Core SDK, although various workaround such as stopping the Tobii Windows Service via Powershell might serve your need. Apologies for any inconvenience.
If however, you intended something else, please let us know and we will try to assist.
14/06/2018 at 09:18 #8458SchaeferParticipantI’ve been using the Core SDK for several months now and can’t get used to the lack of a way to turn the lights on/off. Especially because the system tray switch for the EyeX also fails. This leads to the absurd procedure of constantly plugging in and out the USB cable.
For me, this functionality is the biggest weakness of the otherwise very nice Core SDK. Hopefully the constant emergence of this topic here in the forum will move Tobii in the right direction.15/06/2018 at 11:42 #8463Grant [Tobii]KeymasterHi @chrisschaefer, thanks for your inputs. Certainly, you don’t need to unplug the cable as there are workarounds as a mentioned above, but I understand your point and will indeed pass it along to the developers for further review.
15/06/2018 at 20:08 #8466Thomas BooijinkParticipantYes I mean the functionality already present in the system tray dialog. It would make it easier for users to use software supported by eye trackers. (Turn on the eye tracker in case it isn’t on already). Now I have to prompt users to first turn it on before using the program. Especially when having a full screen application it can be confusing.
The powershell workaround doesn’t really work for me, the eyetracker doesn’t automatically turn on when you re-enable the Tobii Windows Service. So I can shut it down but can’t get it to turn back on programmatically.
As @chrisschaefer said, the rest of the api works very well. It seems like a basic function so I wonder why it isn’t there by default.
18/06/2018 at 15:53 #8472Grant [Tobii]KeymasterThanks @chrisschaefer @thomas6886 to you both for the feedback, I will discuss with the developers and investigate any possibilities to help you out.
Out of curiosity, is it more a case that you simply want the LED’s to be switched off or do you requite the device itself to be fully disconnected?
18/06/2018 at 15:58 #8473Thomas BooijinkParticipantFor me it’s more having control of the enable button in the tray UI. This way I can enable the eye tracker in case it’s disabled by the user. This prevents the user from having to tab out of your application, turn on eye-tracking, and tab back in. It seems like unnecessary steps for the user to take.
19/06/2018 at 10:49 #8478SchaeferParticipantMy concern is that the functionality of the EyeX has been reduced. Back in 2014, when I bought it, I had more control than today. At that time with the GazeSDK I could calibrate programmatically with my own design and switch the LEDs on/off programmatically. Since there is no technical reason for removing the functions, it must have been a conscious decision. I just don’t see any reason for it.
In our daily business it turned out that users do not understand the interaction between the Tobii software and our software. They want everything seamlessly from a single application. GazeSDK based we were able to offer a better usability for our users.
With illuminated LEDs one feels observed and the slight flickering of the 4Cs disturbs permanently. Therefore, it is normal for our users that they want to turn off the LEDs after the eye tracking session is over.
To your recommended work-around to stop the Tobii service: An additional difficulty is that some employees in Fortune 500 companies have no rights to stop a Windows service. But no Windows access right can stop them to unplug the cable…25/06/2018 at 12:26 #8498Grant [Tobii]KeymasterHi @chrisschaefer @thomas6886, thanks for your patience in allowing me to formulate for you a detailed respose to your queries.
Tobii are of the belief that the user, and only the user, should have the right to totally shut eye tracking off. If any app could shut it off we could have potentially numerous support issues where the eye tracker doesn’t work, only to discover it has been shut off by another application.
We have several use cases that are system wide; For example for impaired people, business security services (e.g detect if someone is peeking over your shoulder or locking the computer when you are not present for example), battery saving features (turn off display when you are not present), and so on.
All of these would stop working if we let any app turn off the tracker.Indeed, there may be cases where it would make sense to turn the tracker off, watching full screen video for example, but we can’t control what the client app is doing and we can’t make sure the tracker would be turned back on. That would need some complex security feature with detecting what app is in front, if it is full screen, having user’s consent, automatically restore, etc.
As Tobii has developed, our goal is that it should be a natural part of every computer. Back in the days of the GazeSDK the use cases were very limited and there were no security features. Anyone could to anything and had access to everything which for us resulted in numerous issues both for consumer and our support team.
I appreciate your disappointment in this case, but I hope this helps you understand our perspective.
26/06/2018 at 17:48 #8501SchaeferParticipantI understand Tobiis desire to break out of the niche and make eye tracking more mainstream. But why does this have to go at the expense of all the motivated developers here? There have been so many threads on programmatic calibration and programmatic enabling in recent years, but never a thread about removing API functions.
There is the TOBII_STATE_EXCLUSIVE_MODE. One possible solution could be that the critical applications you mentioned can launch the tracker in an exclusive mode and no other app can turn off the tracker in this mode. I have never seen a setting where a customer uses two different eye tracking apps at the same time.
27/06/2018 at 23:59 #8507Grant [Tobii]KeymasterI will be more than happy to pass along your input, though at this current stage any change of policy is unlikely in the near future.
28/06/2018 at 11:21 #8516Thomas BooijinkParticipantI can see why disabling the eyetracker would possibly cause problems but enabling it only makes for a nicer user experience. As I stated before: ‘This prevents the user from having to tab out of your application, turn on eye-tracking, and tab back in.’
- AuthorPosts
- You must be logged in to reply to this topic.