Exemplo n.º 1
0
        public int wsize = 0; //windowsize=3s


        EEG_Logger()
        {
            // create the engine
            engine            = EmoEngine.Instance;
            engine.UserAdded += new EmoEngine.UserAddedEventHandler(engine_UserAdded_Event);

            // connect to Emoengine.
            engine.Connect();

            // create a header for our output file
            //WriteHeader();

            rawDataIdx = 0;
            ds         = new Data_Set();

            //p300값 txt파일로
            string makeFolder_path = @"C:\\Users\\sohyeon\\Desktop\\";
            string folderName      = makeFolder_path + "p300";

            f = new DirectoryInfo(folderName);
            f.Create();

            //긍부정값 txt파일로
            string folderName2 = makeFolder_path + "ne_po";

            f2 = new DirectoryInfo(folderName2);
            f2.Create();

            //eeg raw data저장
            rawDict = new Dictionary <int, List <double> >();
            for (int i = 0; i < 14; i++)
            {
                rawDict[i] = new List <double>();
            }
        }
Exemplo n.º 2
0
    public float CognitivGetActionSkillRating(uint userId, EdkDll.EE_CognitivAction_t action)
    {
        float result = 0f;

        EmoEngine.errorHandler(EdkDll.EE_CognitivGetActionSkillRating(userId, action, out result));
        return(result);
    }
Exemplo n.º 3
0
 public AVGPower(TextWriter infile)
 {
     engine            = EmoEngine.Instance;
     engine.UserAdded += new EmoEngine.UserAddedEventHandler(engine_UserAdded_Event);
     engine.Connect();
     file = infile;
 }
Exemplo n.º 4
0
    // private static EEGLogger logger;


    // Use this for initialization
    public EEGLogger()
    {
        //Debug.Log("EEGLogger!");
        engine = EmoEngine.Instance;

        //Debug.Log(engine);
        threshold     = 0;
        thresholdR    = 0;
        readCount     = 0;
        ThresholdSet  = false;
        ThresholdRSet = false;

        for (int i = 0; i < 4; i++)
        {
            rawSignals[i] = new double[bufferSizeLimit];
        }

        try {
            engine.UserAdded   += new EmoEngine.UserAddedEventHandler(engine_UserAdded_Event);
            engine.UserRemoved += new EmoEngine.UserRemovedEventHandler(engine_UserRemoved_Event);
            engine.Connect();

            //writeHeader();
            //EmoEngine.errorHandler(EdkDll.EE_EngineConnect("Emotiv Systems-5"));
            //Debug.Log("engine:"+engine);
        }
        catch (Exception e) {
            Debug.Log(e);
            Debug.Log("Unable to connect!");
        }

        //   instanceCount++;
    }
Exemplo n.º 5
0
    public int ExpressivGetTrainedSignatureAvailable(uint userId)
    {
        int result = 0;

        EmoEngine.errorHandler(EdkDll.EE_ExpressivGetTrainedSignatureAvailable(userId, out result));
        return(result);
    }
Exemplo n.º 6
0
    public uint EngineGetNumUser()
    {
        uint result = 0u;

        EmoEngine.errorHandler(EdkDll.EE_EngineGetNumUser(out result));
        return(result);
    }
Exemplo n.º 7
0
    public uint GetVitalAlgorithm(EdkDll.EE_EmotivSuite_t suite)
    {
        uint result = 0u;

        EmoEngine.errorHandler(EdkDll.EE_OptimizationGetVitalAlgorithm(this.hOptimizationParam, suite, out result));
        return(result);
    }
Exemplo n.º 8
0
 void EEG_Starter()
 {
     // create the engine
     engine            = EmoEngine.Instance;
     engine.UserAdded += new EmoEngine.UserAddedEventHandler
                             (engine_UserAdded_Event);
 }
Exemplo n.º 9
0
    public float CognitivGetOverallSkillRating(uint userId)
    {
        float result = 0f;

        EmoEngine.errorHandler(EdkDll.EE_CognitivGetOverallSkillRating(userId, out result));
        return(result);
    }
Exemplo n.º 10
0
    public int CognitivGetActivationLevel(uint userId)
    {
        int result = 0;

        EmoEngine.errorHandler(EdkDll.EE_CognitivGetActivationLevel(userId, out result));
        return(result);
    }
Exemplo n.º 11
0
    public bool OptimizationIsEnabled()
    {
        bool result = false;

        EmoEngine.errorHandler(EdkDll.EE_OptimizationIsEnabled(out result));
        return(result);
    }
Exemplo n.º 12
0
    public OptimizationParam OptimizationGetParam()
    {
        OptimizationParam optimizationParam = new OptimizationParam();

        EmoEngine.errorHandler(EdkDll.EE_OptimizationGetParam(optimizationParam.GetHandle()));
        return(optimizationParam);
    }
Exemplo n.º 13
0
    public void SoftwareGetVersion(out string pszVersionOut, out uint pBuildNumOut)
    {
        StringBuilder stringBuilder = new StringBuilder(128);

        EmoEngine.errorHandler(EdkDll.EE_SoftwareGetVersion(stringBuilder, (uint)stringBuilder.Capacity, out pBuildNumOut));
        pszVersionOut = stringBuilder.ToString();
    }
Exemplo n.º 14
0
    public uint CognitivGetSignatureCacheSize(uint userId)
    {
        uint result = 0u;

        EmoEngine.errorHandler(EdkDll.EE_CognitivGetSignatureCacheSize(userId, out result));
        return(result);
    }
Exemplo n.º 15
0
    public uint HardwareGetVersion(uint userId)
    {
        uint result;

        EmoEngine.errorHandler(EdkDll.EE_HardwareGetVersion(userId, out result));
        return(result);
    }
Exemplo n.º 16
0
    public Profile GetUserProfile(uint userId)
    {
        Profile profile = new Profile();

        EmoEngine.errorHandler(EdkDll.EE_GetUserProfile(userId, profile.GetHandle()));
        return(profile);
    }
Exemplo n.º 17
0
    // Use this for initialization
    void Start()
    {
        DontDestroyOnLoad(transform.gameObject);
        tracking = true;
        if (tracking)
        {
            engine = EmoEngine.Instance;

            engine.EmoEngineConnected +=
                new EmoEngine.EmoEngineConnectedEventHandler(engine_EmoEngineConnected);
            engine.EmoEngineDisconnected +=
                new EmoEngine.EmoEngineDisconnectedEventHandler(engine_EmoEngineDisconnected);
            engine.UserAdded +=
                new EmoEngine.UserAddedEventHandler(engine_UserAdded);
            engine.UserRemoved +=
                new EmoEngine.UserRemovedEventHandler(engine_UserRemoved);
            engine.EmoStateUpdated +=
                new EmoEngine.EmoStateUpdatedEventHandler(engine_EmoStateUpdated);

            engine.EmoEngineEmoStateUpdated +=
                new EmoEngine.EmoEngineEmoStateUpdatedEventHandler(engine_EmoEngineEmoStateUpdated);

            engine.AffectivEmoStateUpdated +=
                new EmoEngine.AffectivEmoStateUpdatedEventHandler(engine_AffectivEmoStateUpdated);

            engine.RemoteConnect("127.0.0.1", 3008);
        }
    }
Exemplo n.º 18
0
    public uint CognitivGetTrainedSignatureActions(uint userId)
    {
        uint result = 0u;

        EmoEngine.errorHandler(EdkDll.EE_CognitivGetTrainedSignatureActions(userId, out result));
        return(result);
    }
Exemplo n.º 19
0
        static void Main(string[] args)
        {
            Console.WriteLine("===================================================================================");
            Console.WriteLine("Example to get the average band power for a specific channel from the latest epoch.");
            Console.WriteLine("===================================================================================");

            AverageBandPowers p = new AverageBandPowers();

            // create the engine
            EmoEngine engine = EmoEngine.Instance;

            engine.UserAdded += new EmoEngine.UserAddedEventHandler(engine_UserAdded_Event);
            engine.Connect();

            string header = "Theta, Alpha, Low_beta, High_beta, Gamma";;

            file.WriteLine(header);
            file.WriteLine("");

            EdkDll.IEE_DataChannel_t[] channelList = new EdkDll.IEE_DataChannel_t[5] {
                EdkDll.IEE_DataChannel_t.IED_AF3, EdkDll.IEE_DataChannel_t.IED_AF4, EdkDll.IEE_DataChannel_t.IED_T7,
                EdkDll.IEE_DataChannel_t.IED_T8, EdkDll.IEE_DataChannel_t.IED_O1
            };

            while (true)
            {
                engine.ProcessEvents(10);

                if (userID < 0)
                {
                    continue;
                }

                if (Console.KeyAvailable)
                {
                    break;
                }

                double[] alpha     = new double[1];
                double[] low_beta  = new double[1];
                double[] high_beta = new double[1];
                double[] gamma     = new double[1];
                double[] theta     = new double[1];

                for (int i = 0; i < 5; i++)
                {
                    engine.IEE_GetAverageBandPowers((uint)userID, channelList[i], theta, alpha, low_beta, high_beta, gamma);
                    file.Write(theta[0] + ",");
                    file.Write(alpha[0] + ",");
                    file.Write(low_beta[0] + ",");
                    file.Write(high_beta[0] + ",");
                    file.WriteLine(gamma[0] + ",");

                    Console.WriteLine("Theta: " + theta[0]);
                }
            }

            file.Close();
            engine.Disconnect();
        }
Exemplo n.º 20
0
    public int ExpressivGetThreshold(uint userId, EdkDll.EE_ExpressivAlgo_t algoName, EdkDll.EE_ExpressivThreshold_t thresholdName)
    {
        int result = 0;

        EmoEngine.errorHandler(EdkDll.EE_ExpressivGetThreshold(userId, algoName, thresholdName, out result));
        return(result);
    }
Exemplo n.º 21
0
    public uint ExpressivGetTrainingTime(uint userId)
    {
        uint result = 0u;

        EmoEngine.errorHandler(EdkDll.EE_ExpressivGetTrainingTime(userId, out result));
        return(result);
    }
Exemplo n.º 22
0
        //static void keyHandler(ConsoleKey key)
        //{
        //    switch (key)
        //    {
        //        case ConsoleKey.F1:
        //            ulong action1 = (ulong)EdkDll.IEE_MentalCommandAction_t.MC_LEFT;
        //            ulong action2 = (ulong)EdkDll.IEE_MentalCommandAction_t.MC_RIGHT;
        //            ulong listAction = action1 | action2;
        //            EmoEngine.Instance.MentalCommandSetActiveActions(0, listAction);
        //            Console.WriteLine("Setting MentalCommand active actions for user");
        //            break;
        //        case ConsoleKey.F2:
        //            EmoEngine.Instance.MentalCommandSetTrainingAction(0, EdkDll.IEE_MentalCommandAction_t.MC_NEUTRAL);
        //            EmoEngine.Instance.MentalCommandSetTrainingControl(0, EdkDll.IEE_MentalCommandTrainingControl_t.MC_START);
        //            break;
        //        case ConsoleKey.F3:
        //            EmoEngine.Instance.MentalCommandSetTrainingAction(0, EdkDll.IEE_MentalCommandAction_t.MC_RIGHT);
        //            EmoEngine.Instance.MentalCommandSetTrainingControl(0, EdkDll.IEE_MentalCommandTrainingControl_t.MC_START);
        //            break;
        //        case ConsoleKey.F4:
        //            EmoEngine.Instance.MentalCommandSetTrainingAction(0, EdkDll.IEE_MentalCommandAction_t.MC_LEFT);
        //            EmoEngine.Instance.MentalCommandSetTrainingControl(0, EdkDll.IEE_MentalCommandTrainingControl_t.MC_START);
        //            break;
        //        case ConsoleKey.F5:
        //            EmoEngine.Instance.MentalCommandSetActivationLevel(0, 2);
        //            Console.WriteLine("MentalCommand Activateion level set to {0}", EmoEngine.Instance.MentalCommandGetActivationLevel(0));
        //            break;
        //        case ConsoleKey.F6:
        //            Console.WriteLine("MentalCommand Activateion level is {0}", EmoEngine.Instance.MentalCommandGetActivationLevel(0));
        //            break;
        //        case ConsoleKey.F7:
        //            Console.WriteLine("Get the current overall skill rating: {0}", EmoEngine.Instance.MentalCommandGetOverallSkillRating(0));
        //            break;
        //        case ConsoleKey.F8:
        //            EmoEngine.Instance.FacialExpressionSetTrainingAction(0, EdkDll.IEE_FacialExpressionAlgo_t.FE_CLENCH);
        //            EmoEngine.Instance.FacialExpressionSetTrainingControl(0, EdkDll.IEE_FacialExpressionTrainingControl_t.FE_START);
        //            break;
        //        case ConsoleKey.F9:
        //            String version;
        //            UInt32 buildNum;
        //            EmoEngine.Instance.SoftwareGetVersion(out version, out buildNum);
        //            Console.WriteLine("Software Version: {0}, {1}", version, buildNum);
        //            break;
        //        case ConsoleKey.F10:
        //            enableLoger = !enableLoger;
        //            break;

        //        default:
        //            break;
        //    }
        //}

        public static void click()
        {
            EmoEngine engine = EmoEngine.Instance;

            engine.EmoEngineConnected              += new EmoEngine.EmoEngineConnectedEventHandler(engine_EmoEngineConnected);
            engine.EmoEngineDisconnected           += new EmoEngine.EmoEngineDisconnectedEventHandler(engine_EmoEngineDisconnected);
            engine.FacialExpressionEmoStateUpdated += new EmoEngine.FacialExpressionEmoStateUpdatedEventHandler(engine_FacialExpressionEmoStateUpdated);

            engine.Connect();

            // Console.WriteLine("===========================================================================");
            //Console.WriteLine("===========================================================================");

            //ConsoleKeyInfo cki = new ConsoleKeyInfo();
            try
            {
                engine.ProcessEvents(3);
            }
            catch (EmoEngineException e)
            {
                Console.WriteLine("{0}", e.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine("{0}", e.ToString());
            }
            engine.Disconnect();
        }
Exemplo n.º 23
0
    void engine_UserAdded_Event(object sender, EmoEngineEventArgs e)
    {
        //Thread t = Thread.CurrentThread;
        //Debug.Log(t.Name + t.ThreadState);
        // t.Suspend();
        //t.Yield();// Suspend();
        Debug.Log("Dongle Plugged!!!!!!!");
        userID = (int)e.userId;

        try
        {
            int errorCode = EdkDll.EE_DataAcquisitionEnable((uint)userID, true);
            //engine.DataAcquisitionEnable((uint)userID, true);
            EmoEngine.errorHandler((Int32)errorCode);
            Debug.Log("errorCode = " + errorCode);
            //enable the data aquisition for this user

            //[DllImport("edk.dll", EntryPoint = "EE_DataAcquisitionEnable")]
            // static extern Int32 Unmanaged_EE_DataAcquisitionEnable(UInt32 userId, Boolean enable);
        }
        catch (Exception exp)
        {
            Debug.Log("error");
            Debug.Log(exp);
        }


        try {
            bool result;
            int  err2 = EdkDll.EE_DataAcquisitionIsEnabled((uint)userID, out result);
            Debug.Log(err2);
            EmoEngine.errorHandler((Int32)err2);
        } catch (Exception exp) {
            Debug.Log("error");
            Debug.Log(exp);
        }

        EmoState emoState = new EmoState();

        EdkDll.EE_EEG_ContactQuality_t[] qualities = emoState.GetContactQualityFromAllChannels();

        int i;

        for (i = 0; i < qualities.Length; i++)
        {
            Debug.Log(qualities[i]);
        }
        // EE_DataAcquisitionIsEnabled(uint userId, out bool pEnableOut);
        //engine.DataAcquisitionEnable((uint)userID, true);

        uint sampleRate = engine.DataGetSamplingRate((uint)userID);

        Debug.Log(sampleRate);
        //ask for up to 1s of buffered data
        engine.EE_DataSetBufferSizeInSec(1);
        int num = (int)engine.EngineGetNumUser();

        Debug.Log("user number = " + num);
    }
Exemplo n.º 24
0
 public void OptimizationEnable(OptimizationParam param)
 {
     if (param == null)
     {
         throw new NullReferenceException();
     }
     EmoEngine.errorHandler(EdkDll.EE_OptimizationEnable(param.GetHandle()));
 }
Exemplo n.º 25
0
 public void SetUserProfile(uint userId, byte[] profileBytes)
 {
     if (profileBytes == null)
     {
         throw new NullReferenceException();
     }
     EmoEngine.errorHandler(EdkDll.EE_SetUserProfile(userId, profileBytes, (uint)profileBytes.Length));
 }
 //- quit and disconnect the device
 private void OnApplicationQuit()
 {
     if (engine != null)
     {
         engine.Disconnect();
         engine = null;
     }
 }
Exemplo n.º 27
0
 private void DisconnectEmoEngine()
 {
     if (emoEngine != null)
     {
         emoEngine.Disconnect();
         emoEngine = null;
     }
 }
Exemplo n.º 28
0
 void Start()
 {
     engine = EmoEngine.Instance;
     engine.Connect();
     engine.UserRemoved += onUserRemoved;
     engine.UserAdded   += onUserAdded;
     StartCoroutine(process());
 }
Exemplo n.º 29
0
        public bool startRealtimeSVM(string id, string name)
        {
            EmoEngine engine = EmoEngine.Instance;

            engine.UserAdded += new EmoEngine.UserAddedEventHandler(engine_UserAdded_Event);
            engine.FacialExpressionEmoStateUpdated += new EmoEngine.FacialExpressionEmoStateUpdatedEventHandler(engine_FacialExpressionEmoStateUpdated);
            engine.Connect();
            EdkDll.IEE_DataChannel_t[] channelList = new EdkDll.IEE_DataChannel_t[7] {
                EdkDll.IEE_DataChannel_t.IED_AF3, EdkDll.IEE_DataChannel_t.IED_AF4, EdkDll.IEE_DataChannel_t.IED_T7,
                EdkDll.IEE_DataChannel_t.IED_T8, EdkDll.IEE_DataChannel_t.IED_O1, EdkDll.IEE_DataChannel_t.IED_GYROX, EdkDll.IEE_DataChannel_t.IED_GYROY
            };
            if (!ready)
            {
                svmscale.buildSVMCorpusUpdated(name);
                //svmscale.scaleSVMData(name);
                ready = svm.buildSVMCorpus(name);
                startRealtimeSVM(id, name);
            }
            Thread newThread;
            int    itr = 0;

            double[] alpha     = new double[1];
            double[] low_beta  = new double[1];
            double[] high_beta = new double[1];
            double[] gamma     = new double[1];
            double[] theta     = new double[1];
            double[] data      = new double[25];
            while (ready)
            {
                itr++;
                engine.ProcessEvents(2);
                if (userID < 0)
                {
                    continue;
                }
                for (int i = 0, j = 0; i < 5; i++)
                {
                    engine.IEE_GetAverageBandPowers((uint)userID, channelList[i], theta, alpha, low_beta, high_beta, gamma);
                    data[j++] = theta[0];
                    data[j++] = alpha[0];
                    data[j++] = low_beta[0];
                    data[j++] = high_beta[0];
                    data[j++] = gamma[0];
                }
                //up simple data taken form karrarUp.csv
                //data = new double[] { 4.651620563, 5.212359266, 10.90409395, 5.157308481, 4.170539408, 5.10950104, 6.035994062,
                //[ 2.254629381, 1.60659665,  1.328094785, 1.882520841, 1.027082428, 2.57410163,  2.209505082, 1.17652227,  0.9200791,   0.524185866, 2.047865372, 1.76506681,  1.091739745, 0.690766561, 0.820688245, 1.643871005, 5.476966707, 1.084435047, 1.055108772, 0.556177084, 335.9026309, 186.3244237, 140.337729,  67.65089061, 25.64029729 ];
                if (data[0] != 0 && data[24] != 0)
                {
                    newThread = new Thread(() => Form1.Instance.moveTestObject(svm.svmRealTimeTest(data)));
                    newThread.Start();
                }
                Thread.Sleep(250);
                //ready = false;
            }

            return(ready);
        }
Exemplo n.º 30
0
    public byte[] GetBytes()
    {
        uint num = 0u;

        EmoEngine.errorHandler(EdkDll.EE_GetUserProfileSize(this.hProfile, out num));
        byte[] array = new byte[num];
        EmoEngine.errorHandler(EdkDll.EE_GetUserProfileBytes(this.hProfile, array, num));
        return(array);
    }
Exemplo n.º 31
0
    public void disconnect()
    {
        #region Emotiv
        try {
            engine.Disconnect();
        } catch {}

        engine = null;
        #endregion

        #region EmoClient
        //engineClient.StopDataPolling();
        #endregion
    }
Exemplo n.º 32
0
    public void connect()
    {
        #region Emotiv
           if (engine == null)
            engine = EmoEngine.Instance;

        engine.EmoEngineConnected += new EmoEngine.EmoEngineConnectedEventHandler(engine_EmoEngineConnected);
        engine.UserAdded += new EmoEngine.UserAddedEventHandler(engine_userAdded_event);

        engine.CognitivEmoStateUpdated += new EmoEngine.CognitivEmoStateUpdatedEventHandler(engine_CognitiveEmoStateUpdated);
        engine.AffectivEmoStateUpdated += new EmoEngine.AffectivEmoStateUpdatedEventHandler(engine_AffectivEmoStateUpdated);
        engine.Connect();
        #endregion Emotiv

        #region EmoClient
        /*EmoEngine.Instance.UserAdded += new EmoEngine.UserAddedEventHandler(engine_userAdded_event);
        engineClient.StartEmoEngine();*/
        #endregion EmoClient
    }
Exemplo n.º 33
0
    // Use this for initialization
    void Start()
    {
        DontDestroyOnLoad(transform.gameObject);
        tracking = true;
        if (tracking)
        {
            engine = EmoEngine.Instance;

            engine.EmoEngineConnected +=
                new EmoEngine.EmoEngineConnectedEventHandler(engine_EmoEngineConnected);
            engine.EmoEngineDisconnected +=
                new EmoEngine.EmoEngineDisconnectedEventHandler(engine_EmoEngineDisconnected);
            engine.UserAdded +=
                new EmoEngine.UserAddedEventHandler(engine_UserAdded);
            engine.UserRemoved +=
                new EmoEngine.UserRemovedEventHandler(engine_UserRemoved);
            engine.EmoStateUpdated +=
                new EmoEngine.EmoStateUpdatedEventHandler(engine_EmoStateUpdated);

            engine.EmoEngineEmoStateUpdated +=
                new EmoEngine.EmoEngineEmoStateUpdatedEventHandler(engine_EmoEngineEmoStateUpdated);

            engine.AffectivEmoStateUpdated +=
                new EmoEngine.AffectivEmoStateUpdatedEventHandler(engine_AffectivEmoStateUpdated);

            engine.RemoteConnect("127.0.0.1",3008);
        }
    }
Exemplo n.º 34
0
 /*
  * Create instance of EmoEngine and set up his handlers for
  * user events, connection events and mental command training events.
  * Init the connection
 */
 void Awake()
 {
     engine = EmoEngine.Instance;
     engine.UserAdded += new EmoEngine.UserAddedEventHandler (UserAddedEvent);
     engine.UserRemoved += new EmoEngine.UserRemovedEventHandler (UserRemovedEvent);
     engine.EmoEngineConnected += new EmoEngine.EmoEngineConnectedEventHandler (EmotivConnected);
     engine.EmoEngineDisconnected += new EmoEngine.EmoEngineDisconnectedEventHandler (EmotivDisconnected);
     engine.MentalCommandTrainingStarted += new EmoEngine.MentalCommandTrainingStartedEventEventHandler (TrainingStarted);
     engine.MentalCommandTrainingSucceeded += new EmoEngine.MentalCommandTrainingSucceededEventHandler (TrainingSucceeded);
     engine.MentalCommandTrainingCompleted += new EmoEngine.MentalCommandTrainingCompletedEventHandler (TrainingCompleted);
     engine.MentalCommandTrainingRejected += new EmoEngine.MentalCommandTrainingRejectedEventHandler (TrainingRejected);
     engine.MentalCommandTrainingReset += new EmoEngine.MentalCommandTrainingResetEventHandler (TrainingReset);
     engine.Connect ();
 }