LC Technologies' EyeGaze Edge is a hardware-based eye-tracking solution. This is the source for an executable that can be compiled to communicate with the hardware and pass the data along to a listener.
The vendor can provided needed libraries and dlls that will need to be included.
After that open build/EdgeTracker.sln
and build as a Release target for a 32-bit
architecture.
# install eyegaze_edge
npm install https://github.com/coughdrop/eyegaze_edge.git
md edge
cp node_modules/eyegaze_edge/build/Release/EdgeTracker.exe edge/EdgeTracker.exe
cp lc_libraries/*.dll edge/*.dll
var edge = require('eyegaze_edge');
edge.setup(function(state) {
if(state.ready) {
edge.listen();
setInterval(function() {
console.log(edge.ping());
}, 50);
}
});
setTimeout(function() {
edge.stop_listening();
}, 10000);
We use this library as part of our Electron app for CoughDrop. In order for it to work,
it needs to be in the edge
folder within the application, along with the required
dlls provided by the vendor ([http://www.eyegaze.com]). As of publishing, the needed SDKs
and documentation are available here: http://www2.eyegaze.com/updates/
Note that the init
function of _eyegaze_edge.cc
defines the method names that will be available to be
called from JavaScript via a node import, as well as their mapping to internal methods. While
additional methods may be available from the SDK, we keep the method called to a minimum here
to keep consistency across libraries, and because this code is not fun to maintain.
When this library is installed, it should automatically be used by gazelinger.js if also installed.
Also note, the dlls have only been tested with the x86, not x64 which was not available at time of testing.
MIT