void readNeuro() { tgPacketCount = ThinkGear.TG_ReadPackets(tgHandleId, -1); attention = ThinkGear.TG_GetValue(tgHandleId, ThinkGear.DATA_ATTENTION); blink = ThinkGear.TG_GetValue(tgHandleId, ThinkGear.DATA_BLINK_STRENGTH); }
public bool EnableBlinkDetection(bool enable) { if (!enable) { _tgState.BlinkStrength = 0; } return(ThinkGear.TG_EnableBlinkDetection(_connectionId, enable ? 1 : 0) == 0); }
void setupNeuro() { tgHandleId = ThinkGear.TG_GetNewConnectionId(); tgConnectionStatus = ThinkGear.TG_Connect(tgHandleId, "\\\\.\\COM3", ThinkGear.BAUD_9600, ThinkGear.STREAM_PACKETS); ThinkGear.TG_EnableBlinkDetection(tgHandleId, 1); }
private float?GetValue(int type) { // if the value has been updated, get the value and return it if (ThinkGear.TG_GetValueStatus(_connectionId, type) != 0) { return(ThinkGear.TG_GetValue(_connectionId, type)); } return(null); }
private void SetVariables() { thinkgear = GameObject.Find("ThinkGear").GetComponent <ThinkGear>(); thinkgear.UpdateConnectedStateEvent += () => { thinkgear.StartMonitoring(); Debug.Log("Sensor on"); }; thinkgear.UpdateMeditationEvent += UpdateMeditation; thinkgear.UpdateAttentionEvent += UpdateAttention; timeLeft = maxTime; bestScoreSec = PlayerPrefs.GetInt("bestScore"); bestScoreText.text = string.Format("Your best score: {0:00}:{1:00}", Mathf.FloorToInt(bestScoreSec / 60), Mathf.FloorToInt(bestScoreSec % 60)); }
public bool Connect(string comPort, int baud, bool runAsync, bool trace) { // get the driver version _tgState.Version = ThinkGear.TG_GetDriverVersion(); LogText("ThinkGear DLL Version: " + _tgState.Version); // get a new connection ID _connectionId = ThinkGear.TG_GetNewConnectionId(); LogText("Connection ID: " + _connectionId); // if < 0, we have an error if (_connectionId < 0) { return(false); } // turn on tracing if (trace) { ThinkGear.TG_SetStreamLog(_connectionId, "streamLog.txt"); ThinkGear.TG_SetDataLog(_connectionId, "dataLog.txt"); } // connect to the device int connect = ThinkGear.TG_Connect(_connectionId, @"\\.\" + comPort, baud, ThinkGear.STREAM_PACKETS); LogText("Connect: " + connect); // if < 0, we have an error if (connect < 0) { return(false); } _connected = true; // if runAsync, start a new polling thread if (runAsync) { _event = new AutoResetEvent(false); _polling = true; Thread t = new Thread(PollThinkGear); t.IsBackground = true; t.Start(); } return(true); }
public void UpdateState() { if (!_connected) { return; } // read all packets _tgState.PacketsRead = ThinkGear.TG_ReadPackets(_connectionId, 1); // if < 0, we have an error if (_tgState.PacketsRead < 0) { _errors++; } else { _errors = 0; } // a few errors may be normal. if we get a LOT, we have a problem _tgState.Error = _errors > 25000; // if we read at least one packet, update the state values if (_tgState.PacketsRead > 0) { _tgState.Battery = GetValue(ThinkGear.DATA_BATTERY) ?? _tgState.Battery; _tgState.PoorSignal = GetValue(ThinkGear.DATA_POOR_SIGNAL) ?? _tgState.PoorSignal; _tgState.Attention = GetValue(ThinkGear.DATA_ATTENTION) ?? _tgState.Attention; _tgState.Meditation = GetValue(ThinkGear.DATA_MEDITATION) ?? _tgState.Meditation; _tgState.Raw = GetValue(ThinkGear.DATA_RAW) ?? _tgState.Raw; _tgState.Delta = GetValue(ThinkGear.DATA_DELTA) ?? _tgState.Delta; _tgState.Theta = GetValue(ThinkGear.DATA_THETA) ?? _tgState.Theta; _tgState.Alpha1 = GetValue(ThinkGear.DATA_ALPHA1) ?? _tgState.Alpha1; _tgState.Alpha2 = GetValue(ThinkGear.DATA_ALPHA2) ?? _tgState.Alpha2; _tgState.Beta1 = GetValue(ThinkGear.DATA_BETA1) ?? _tgState.Beta1; _tgState.Beta2 = GetValue(ThinkGear.DATA_BETA2) ?? _tgState.Beta2; _tgState.Gamma1 = GetValue(ThinkGear.DATA_GAMMA1) ?? _tgState.Gamma1; _tgState.Gamma2 = GetValue(ThinkGear.DATA_GAMMA2) ?? _tgState.Gamma2; _tgState.BlinkStrength = GetValue(ThinkGear.DATA_BLINK_STRENGTH) ?? _tgState.BlinkStrength; // let those listening know if (ThinkGearChanged != null) { ThinkGearChanged(this, new ThinkGearChangedEventArgs(_tgState)); } } }
public void Disconnect() { if (!_connected) { return; } _polling = false; // wait for the poller to end if (_event != null) { _event.WaitOne(5000, false); } // close it up ThinkGear.TG_FreeConnection(_connectionId); _connected = false; }
private void Start() { thinkGear = GameObject.Find("ThinkGear").GetComponent <ThinkGear>(); thinkGear.UpdateConnectedStateEvent += OnConnect; thinkGear.UpdateBlinkEvent += OnBlink; }
public void Disconnect() { ThinkGear.TG_Disconnect(tgHandleId); }