Get External Signal Data
Tobii = EyeTrackingOperations();
eyetracker_address = 'Address of the desired device';
eyetracker = Tobii.get_eyetracker(eyetracker_address);
if ismember(Capabilities.HasExternalSignal,eyetracker.DeviceCapabilities)
    disp('External Signal Supported');
else
    disp('External Signal Not Supported');
end
result = eyetracker.get_external_signal_data();
if isa(result,'StreamError')
    fprintf('Error: %s\n',char(result.Error));
    fprintf('Source: %s\n',char(result.Source));
    fprintf('SystemTimeStamp: %d\n',result.SystemTimeStamp);
    fprintf('Message: %s\n',result.Message);
elseif isa(result,'ExternalSignal')
   
    pause(1);
    
    external_signal_data = eyetracker.get_external_signal_data();
    eyetracker.stop_external_signal_data();
    fprintf('Collected %d data points\n',size(external_signal_data,2));
    
    
    latest_external_signal_data = external_signal_data(end);
    fprintf('SystemTimeStamp: %d\n',latest_external_signal_data.SystemTimeStamp);
    fprintf('DeviceTimeStamp: %d\n',latest_external_signal_data.DeviceTimeStamp);
    fprintf('Value: %d\n',latest_external_signal_data.Value);
    fprintf('ChangeType: %s\n',char(latest_external_signal_data.ChangeType));
end