Пример #1
0
    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);
    }
Пример #2
0
        public bool EnableBlinkDetection(bool enable)
        {
            if (!enable)
            {
                _tgState.BlinkStrength = 0;
            }

            return(ThinkGear.TG_EnableBlinkDetection(_connectionId, enable ? 1 : 0) == 0);
        }
Пример #3
0
    void setupNeuro()
    {
        tgHandleId = ThinkGear.TG_GetNewConnectionId();

        tgConnectionStatus = ThinkGear.TG_Connect(tgHandleId,
                                                  "\\\\.\\COM3",
                                                  ThinkGear.BAUD_9600,
                                                  ThinkGear.STREAM_PACKETS);
        ThinkGear.TG_EnableBlinkDetection(tgHandleId, 1);
    }
Пример #4
0
        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);
        }
Пример #5
0
    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));
    }
Пример #6
0
        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);
        }
Пример #7
0
        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));
                }
            }
        }
Пример #8
0
        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;
        }
Пример #9
0
 private void Start()
 {
     thinkGear = GameObject.Find("ThinkGear").GetComponent <ThinkGear>();
     thinkGear.UpdateConnectedStateEvent += OnConnect;
     thinkGear.UpdateBlinkEvent          += OnBlink;
 }
Пример #10
0
 public void Disconnect()
 {
     ThinkGear.TG_Disconnect(tgHandleId);
 }