Hello Developers,
HAYDi:EyeTribe has been written for to know better EyeTribe device functions and discover its possible futures. This program is a prototype software and shared in the hope that it will be useful to EyeTribe programmers community, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Name and Version: HAYDi:EyeTribe 0.1 BETA
Requirements: Windows 7/8/8.1 64bit, recommended a fast CPU like i7, EyeTribe, Admin Rights
Compatible: Desktop and Start Screen
Shortcuts: Ctrl-Alt-M for show/hide the software, Shift-M for enable Mouse Cursor (the same shortcut as in the EyeTribe), ESC for exit program
Setup: Not required, can run from any local place including memory sticks
Known Problems: Calibration part has not written yet, use EyeTribe's calibration software. If connection drops, you need to restart the software since this part has not written also. Dragging function only works with Fixed Look Mouse Cursor.
What things are considered?: Handicapped people computer accessibility, complete control with no need a keyboard and a mouse, small size, not changing/adding anything to Windows itself, run as a service, portability together with EyeTribe Server, customizable, transparent to user and system (hidden working - no Show in the taskbar or ALT-TAB window).
When you run the software, the UAC will warn you. Because of I use OSK and Magnifier of Windows, need to have Admin Rights.
There are three solutions for UAC.
1. The software needs to be certificated. (Cost money and time)
2. Disable the UAC control (not recommended for security reasons)
3. There is an unusual way to pass UAC but it's not a proper solution. I do not like to use it.
So, for this beta software you should accept UAC warning and click Yes to continue for now.
Main Tab:
The calibration service is not ready yet. Most of Status Service Reports are meaningful for programmers only. Except the first 3 item, rest of the report items are refreshed in the real time.
Tools Tab:
Tools tab is also good for programmers. You have an option to save all mutual communication and explanations to a file in your My Documents folder.
Functions Tab:
Mouse Cursor: Mouse pointer may fallow left/right/both eye of raw/average values. Shift-M enables or disables this function in anytime. You may switch on/off the mouse cursor function by closing your both eye for a defined seconds. Sound feedback option is available. Position Tooltip is good for programmers. It gives you the current mouse X/Y coordinates just under the mouse pointer (Desktop Screen Only).
Mouse Click: Your options are: 1.No Click, 2.Fixed Look, 3. Winking Left or Right Eye. Select appropriate option for your needs. If you select Change Mouse Cursor Shape Until Clicked option, than mouse cursor will be changed to Hand Point Icon after a period of time to give you a visual feedback that click time is coming. If you using Fixed Look and change your eyes focus to another point of screen after hand icon, mouse click will be cancelled. So you should keep steady your eyes in focus that your selected point for the chosen seconds (Fixed Look Only). If you are using Winking, there is no chance to cancel clicking. On the other hand you do not need to be keep focus at the click point, since mouse cursor will not move and stays on the click point until click operation finished. Another important point for winking is; click operation starts with when you close your eye, stops with when you open your eye. After the click operation, mouse pointer flies to the most current position.
On Screen Keyboard (OSK): This was one of my most enjoyed function. When you looked your computer keyboard, windows on screen keyboard comes to your screen. When you look your keyboard again, it disappears like you tell it 'abracadabra'... I had written several OSK and AAC keyboards before, but this time I choose to use Windows OSK. Using Windows OSK has its pros and cons. It is one of the Microsoft's undocumented and DirectUI used programs. Controlling it is a tough job since it works like a one button/control. Don't forget to select click buttons option in the Windows OSK. You may try other options for your needs as well.
Virtual Buttons: This is the second part of the program which I quite enjoyed while I was writing. Just imagine that as if there are virtual buttons around your screen. Check out below picture for better understanding.
When you looked a particular virtual button for amount of trigger time, it becomes functional. You can define these button positions by changing distance factor from the screen.
Left buttons sends Page Down or Page Up commands to the active application. These buttons are very useful for PDF readings or web surfing. They are also good for Start Screen menu pages navigation.
Top Left virtual button is for Windows Magnifier application. Many of us, complaining about sharp eye gaze pointing. If you are using a Full HD screen with smaller icons, it is almost impossible to select and click a button. Magnifier greatly helps for this kind of situations. You can zoom in and out by looking middle or right top virtual buttons at any time.
Above picture has both magnifier and osk together. There are a lot of magnifier options. Play with them to find exact settings for your needs. I have no experience with strabismus and nistagmus, but I guess magnifier option may help for these situations (informative comments are welcome).
Right Top Virtual Button is for switching between Desktop and Start Screen. Actually I wanted this button for task switcher, but Microsoft changed the game rule again. Unfortunately TAB switching is not allowed from any software after Windows 8.1 but Windows OSK. You can directly hit to taskbar to change active application or use Windows OSK (Ctrl-Alt-Tab or Win-T).
Right Bottom virtual button is a tri-state button and used for dragging. If it is in checked state, dragging is one time functional. In other words, you should select virtual drag button (screen right bottom) again to use this function. If it is in dotted state, then dragging function keeps continue ON until you switch off again by looking to its virtual button. Dotted state is absolutely necessary if you are using a Drawing/CAD/CAM Software. Besides; arranging, moving and resizing windows in both desktop and start screen types, you need to select dotted state. Dragging function starts/stops by your fixed look, after you activated by its virtual button. This means dragging function is only available for Fixed Look function for now.
You already know the server options. There are only two checkbox options may need to be explained.
Show Server Window: If it is checked, the EyeTribe Server output command window stays visible. For a total invisible using let it unchecked. The drawback is you can't bring down the EyeTribe Server by close button, since you can't see it. Only way is using Task Manager or System Restart.
Server Push Mode: Without checking this, you can't use any functions in the Function Tab.
Legality things and other stuff...
Download Files Location:
https://www.dropbox.com/s/a6ze0lv4758iskl/HAYDiEyeTribe.exe?dl=0
https://www.dropbox.com/s/7r6ooh5w13acb2l/HAYDiEyeTribe.ini?dl=0
A tip for developers: I don't know what you are thinking about JSON data decoders but I didn't happy which I tested several ones. Their results are between 4-6ms for a regular frame data decoding. These results were too much, so I decided to use regular expressions to decode EyeTribe Server data and I get around 0,060-0,20ms with my computer, even without making any optimization in my regex codes. I know using regular expressions is not an easy and error prone job but the result is great.
Last word: I had some troubles with EyeTribe device about keeping steady on my notebook. Then I decided to design a holder for it. If you have the same problem, you may use my solution here http://theeyetribe.com/forum/viewtopic.php?f=8&t=426&sid=44476b8bf6e0086817e6b35879429b15
Note: "HAYDi" means "come on, what are waiting for just do it, just start, do it now" in Turkish and pronunciation is like "HEIDI".