Example #1
0
    static void engine_CognitivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
    {
        //Debug.LogError("CognitivEmoStateUpdated");
        isNotResponding = false;
        EmoState es = e.emoState;

        EdkDll.EE_CognitivAction_t cogAction = es.CognitivGetCurrentAction();
        //Debug.LogError(cogAction);
        float power = (float)es.CognitivGetCurrentActionPower();

        //Debug.LogError(power + ":" +(uint)cogAction);
        //CognitivActionPower[(uint)cogAction] = power;
        for (int i = 1; i < cognitivActionList.Length; i++)
        {
            if (cogAction == cognitivActionList[i])
            {
                CognitivActionPower[i] = power;
                //Debug.LogError(CognitivActionPower[i] + "----------------------");
            }
            else
            {
                CognitivActionPower[i] = 0;
            }
        }
    }
Example #2
0
        public TrainingPanel(EmoEngineManager emoEngineParam, EdkDll.EE_CognitivAction_t trainingActionParam)
        {
            emoEngine           = emoEngineParam;
            trainingAction      = trainingActionParam;
            VerticalAlignment   = VerticalAlignment.Center;
            HorizontalAlignment = HorizontalAlignment.Center;
            Orientation         = Orientation.Vertical;
            Margin      = new Vector4F(20);
            RenderScale = new Vector2F(1.5f);

            switch (trainingActionParam)
            {
            case EdkDll.EE_CognitivAction_t.COG_NEUTRAL:
                Name = "Neutral";
                break;

            case EdkDll.EE_CognitivAction_t.COG_PULL:
                Name = "Backward";
                break;

            case EdkDll.EE_CognitivAction_t.COG_PUSH:
                Name = "Forward";
                break;

            case EdkDll.EE_CognitivAction_t.COG_LEFT:
                Name = "Turn Left";
                break;

            case EdkDll.EE_CognitivAction_t.COG_RIGHT:
                Name = "Turn Right";
                break;
            }

            Initialize();
        }
Example #3
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);
    }
Example #4
0
 /// <summary>
 /// Start traning cognitiv action
 /// </summary>
 /// <param name="cognitivAction">Cognitiv Action</param>
 public static void StartTrainingCognitiv(EdkDll.EE_CognitivAction_t cognitivAction)
 {
     if (cognitivAction == EdkDll.EE_CognitivAction_t.COG_NEUTRAL)
     {
         EmoEngine.Instance.CognitivSetTrainingAction((uint)EmoUserManagement.currentUser, cognitivAction);
         EmoEngine.Instance.CognitivSetTrainingControl((uint)EmoUserManagement.currentUser, EdkDll.EE_CognitivTrainingControl_t.COG_START);
     }
     else
     {
         for (int i = 1; i < cognitivActionList.Length; i++)
         {
             if (cognitivAction == cognitivActionList[i])
             {
                 Debug.Log("Action compare");
                 if (cognitivActionsEnabled[i])
                 {
                     Debug.Log("Action is enabled");
                     EmoEngine.Instance.CognitivSetTrainingAction((uint)EmoUserManagement.currentUser, cognitivAction);
                     EmoEngine.Instance.CognitivSetTrainingControl((uint)EmoUserManagement.currentUser, EdkDll.EE_CognitivTrainingControl_t.COG_START);
                 }
                 else
                 {
                     Debug.Log("Action is not enabled");
                 }
             }
         }
     }
 }
Example #5
0
        public float CognitivGetActionSkillRating(uint userId, EdkDll.EE_CognitivAction_t action)
        {
            float pActionSkillRatingOut = 0f;

            errorHandler(EdkDll.EE_CognitivGetActionSkillRating(userId, action, out pActionSkillRatingOut));
            return(pActionSkillRatingOut);
        }
Example #6
0
 public void SetAction(EdkDll.EE_CognitivAction_t actionType, float mForce)
 {
     this.mForce = 30 * mForce;
     if (actionType == EdkDll.EE_CognitivAction_t.COG_LIFT)
     {
         directionVector = Vector3.up;
     }
 }
Example #7
0
 public void EraseCognitivTraining(EdkDll.EE_CognitivAction_t action)
 {
     if (Profile != String.Empty)
     {
         IsTraining = true;
         emoEngine.CognitivSetTrainingAction(UserID, action);
         TrainingStatus = EdkDll.EE_CognitivTrainingControl_t.COG_ERASE;
     }
 }
Example #8
0
 /// <summary>
 /// Enable cognitiv action in arraylist
 /// </summary>
 /// <param name="cognitivAction">Cognitiv Action</param>
 /// <param name="iBool">True = Enable/False = Disable</param>
 public static void EnableCognitivAction(EdkDll.EE_CognitivAction_t cognitivAction, Boolean iBool)
 {
     for (int i = 1; i < cognitivActionList.Length; i++)
     {
         if (cognitivAction == cognitivActionList[i])
         {
             cognitivActionsEnabled[i] = iBool;
             Debug.Log("CognitivEnabledList has changed");
         }
     }
 }
        //Update fields when Emo state updated
        void CognitivEmoStateUpdated()
        {
            if (FEmoState[0] != null)
            {
                EmoState es = FEmoState[0];

                mCogAction = es.CognitivGetCurrentAction();
                mPower     = es.CognitivGetCurrentActionPower();
                mIsActive  = es.CognitivIsActive();
            }
        }
        //Update fields when Emo state updated
        void CognitivEmoStateUpdated()
        {
            if (FEmoState[0] != null)
            {
                EmoState es = FEmoState[0];

                mCogAction = es.CognitivGetCurrentAction();
                mPower = es.CognitivGetCurrentActionPower();
                mIsActive = es.CognitivIsActive();
            }
        }
Example #11
0
    private static void engine_CognitivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
    {
        EmoState emoState = e.emoState;

        EdkDll.EE_CognitivAction_t eE_CognitivAction_t = emoState.CognitivGetCurrentAction();
        float num = emoState.CognitivGetCurrentActionPower();

        for (int i = 1; i < EmoCognitiv.cognitivActionList.Length; i++)
        {
            if (eE_CognitivAction_t == EmoCognitiv.cognitivActionList[i])
            {
                EmoCognitiv.CognitivActionPower[i] = num;
            }
        }
    }
Example #12
0
 public void StartCognitivTraining(EdkDll.EE_CognitivAction_t action)
 {
     if (Profile != String.Empty)
     {
         if (action != EdkDll.EE_CognitivAction_t.COG_NEUTRAL &&
             !activeActions.Contains(action))
         {
             activeActions.Add(action);
         }
         emoEngine.CognitivSetActiveActions(UserID, GetActiveActions());
         IsTraining = true;
         emoEngine.CognitivSetTrainingAction(UserID, action);
         TrainingStatus = EdkDll.EE_CognitivTrainingControl_t.COG_START;
     }
 }
Example #13
0
        private void trainNeutral(EdkDll.EE_CognitivAction_t action)
        {
            _emotiv.CognitivSetTrainingAction(0, action);
            _emotiv.CognitivSetTrainingControl(0, EdkDll.EE_CognitivTrainingControl_t.COG_START);

            Thread.Sleep(10000);
            _hasTrained = true;
            _emotiv.ProcessEvents(1000);

            if (false == _trainingResult)
            {
                MessageBox.Show("Train again");
                trainNeutral(action);
            }
        }
Example #14
0
        static void engine_CognitivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
        {
            EmoState es = e.emoState;

            Single timeFromStart = es.GetTimeFromStart();

            EdkDll.EE_CognitivAction_t cogAction = es.CognitivGetCurrentAction();
            Single  power    = es.CognitivGetCurrentActionPower();
            Boolean isActive = es.CognitivIsActive();

            cogLog.WriteLine(
                "{0},{1},{2},{3}",
                timeFromStart,
                cogAction, power, isActive);
            cogLog.Flush();
        }
Example #15
0
        public bool IsCognitivActionTrained(EdkDll.EE_CognitivAction_t action)
        {
            bool cognitivActionTrained = false;

            lock (emoEngine)
            {
                if (emoEngine != null && Profile != String.Empty)
                {
                    uint trainedActions = emoEngine.CognitivGetTrainedSignatureActions(UserID);
                    cognitivActionTrained = (trainedActions & (uint)action) ==
                                            (uint)action;
                }
            }

            return(cognitivActionTrained);
        }
Example #16
0
 public static void EnableCognitivActionsListEx()
 {
     Debug.Log("Set CognitivList Enable");
     EmoCognitiv.cognitivActionLever = 0;
     for (int i = 1; i < EmoCognitiv.cognitivActionList.Length; i++)
     {
         if (EmoCognitiv.cognitivActionsEnabled[i])
         {
             EmoCognitiv.cognitivActionLever++;
         }
     }
     EdkDll.EE_CognitivAction_t[] array = new EdkDll.EE_CognitivAction_t[EmoCognitiv.cognitivActionLever];
     int num = 0;
     for (int j = 1; j < EmoCognitiv.cognitivActionList.Length; j++)
     {
         if (EmoCognitiv.cognitivActionsEnabled[j])
         {
             array[num] = EmoCognitiv.cognitivActionList[j];
             num++;
         }
     }
     EdkDll.SetMultiActiveActions(EmoUserManagement.currentUser, array, EmoCognitiv.cognitivActionLever);
 }
Example #17
0
    /// <summary>
    /// Enable actions in arraylist (Working in both Unity 2.5 vs 2.6)
    /// </summary>
    public static void EnableCognitivActionsListEx()
    {
        Debug.Log("Set CognitivList Enable");
        cognitivActionLever = 0;
        for (int i = 1; i < cognitivActionList.Length; i++)
        {
            if (cognitivActionsEnabled[i])
            {
                cognitivActionLever++;
            }
        }
        EdkDll.EE_CognitivAction_t[] activeActions = new EdkDll.EE_CognitivAction_t[cognitivActionLever];
        int tmp = 0;

        for (int i = 1; i < cognitivActionList.Length; i++)
        {
            if (cognitivActionsEnabled[i])
            {
                activeActions[tmp] = cognitivActionList[i];
                tmp++;
            }
        }
        EdkDll.SetMultiActiveActions(EmoUserManagement.currentUser, activeActions, cognitivActionLever);
    }
Example #18
0
    public static void EnableCognitivActionsListEx()
    {
        Debug.Log("Set CognitivList Enable");
        EmoCognitiv.cognitivActionLever = 0;
        for (int i = 1; i < EmoCognitiv.cognitivActionList.Length; i++)
        {
            if (EmoCognitiv.cognitivActionsEnabled[i])
            {
                EmoCognitiv.cognitivActionLever++;
            }
        }
        EdkDll.EE_CognitivAction_t[] array = new EdkDll.EE_CognitivAction_t[EmoCognitiv.cognitivActionLever];
        int num = 0;

        for (int j = 1; j < EmoCognitiv.cognitivActionList.Length; j++)
        {
            if (EmoCognitiv.cognitivActionsEnabled[j])
            {
                array[num] = EmoCognitiv.cognitivActionList[j];
                num++;
            }
        }
        EdkDll.SetMultiActiveActions(EmoUserManagement.currentUser, array, EmoCognitiv.cognitivActionLever);
    }
Example #19
0
 private static extern int Unmanged_EE_CognitivGetTrainingAction(uint userId, out EdkDll.EE_CognitivAction_t pActionOut);
Example #20
0
        /// <summary>
        /// Handles any event changes with the emotiv engine.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void engine_EmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
        {
            if (false == _trainingComplete)
            {
                return;
            }

            _wait = true;

            try
            {
                EdkDll.EE_CognitivAction_t action =
                    e.emoState.CognitivGetCurrentAction();

                updateLabel(
                    "Current Emotiv State: " +
                    Enum.GetName(typeof(EdkDll.EE_CognitivAction_t), action),
                    Color.Empty,
                    labelEmotivState);

                if (EdkDll.EE_CognitivAction_t.COG_LEFT == action)
                {
                    updateLabel(
                        "Current Emotiv State: " +
                        Enum.GetName(typeof(EdkDll.EE_CognitivAction_t), action),
                        Color.Blue,
                        labelEmotivState);
                    if (true == buttonHit.Enabled)
                    {
                        if (DialogResult.Yes == MessageBox.Show("Did you try to HIT?", "Hit?", MessageBoxButtons.YesNo))
                        {
                            hit();
                        }
                    }
                }
                else if (EdkDll.EE_CognitivAction_t.COG_PUSH == action)
                {
                    updateLabel(
                        "Current Emotiv State: " +
                        Enum.GetName(typeof(EdkDll.EE_CognitivAction_t), action),
                        Color.Green,
                        labelEmotivState);
                    if (true == buttonStay.Enabled)
                    {
                        if (DialogResult.Yes == MessageBox.Show("Did you try to STAY?", "Stay?", MessageBoxButtons.YesNo))
                        {
                            stay();
                        }
                    }
                    else if (true == buttonStart.Enabled)
                    {
                        if (DialogResult.Yes == MessageBox.Show("Are you ready to START?", "Start?", MessageBoxButtons.YesNo))
                        {
                            start();
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                //handleError(exception);
            }
            finally
            {
                _wait = false;
            }
        }
Example #21
0
 /// <summary>
 /// Enable actions in arraylist (Working in both Unity 2.5 vs 2.6)
 /// </summary>
 public static void EnableCognitivActionsListEx()
 {
     Debug.Log("Set CognitivList Enable");
     cognitivActionLever = 0;
     for (int i = 1; i < cognitivActionList.Length; i++)
     {
         if (cognitivActionsEnabled[i])
         {
             cognitivActionLever++;
         }
     }
     EdkDll.EE_CognitivAction_t[] activeActions = new EdkDll.EE_CognitivAction_t[cognitivActionLever];
     int tmp = 0;
     for (int i = 1; i < cognitivActionList.Length; i++)
     {
         if (cognitivActionsEnabled[i])
         {
             activeActions[tmp] = cognitivActionList[i];
             tmp++;
         }
     }
     EdkDll.SetMultiActiveActions(EmoUserManagement.currentUser, activeActions, cognitivActionLever);
 }
Example #22
0
 static void engine_CognitivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
 {
     //Debug.LogError("CognitivEmoStateUpdated");
     isNotResponding = false;
     EmoState es = e.emoState;
     cogAction = es.CognitivGetCurrentAction();
     //Debug.LogError(cogAction);
     power = (float)es.CognitivGetCurrentActionPower();
     //Debug.LogError(power + ":" +(uint)cogAction);
     //CognitivActionPower[(uint)cogAction] = power;
     for (int i = 1; i < cognitivActionList.Length; i++)
     {
         if (cogAction == cognitivActionList[i])
         {
             CognitivActionPower[i] = power;
             //Debug.LogError(CognitivActionPower[i] + "----------------------");
         }
         else CognitivActionPower[i] = 0;
     }
 }
Example #23
0
 public static void ResetCognitivPower(EdkDll.EE_CognitivAction_t cognitivAction)
 {
     EmoCognitiv.CognitivActionPower[(int)cognitivAction] = 0f;
 }
Example #24
0
        private void engine_CognitivEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
        {
            EmoState     es            = e.emoState;
            FlightWindow outer         = new FlightWindow();
            Single       timeFromStart = es.GetTimeFromStart();
            Single       power         = es.CognitivGetCurrentActionPower();      // get power

            EdkDll.EE_CognitivAction_t cogAction = es.CognitivGetCurrentAction(); // get detected command

            Boolean isActive = es.CognitivIsActive();

            textBox1.Text = "Action:" + cogAction.ToString() + "|" + "Power" + power;
            switch (cogAction)
            {
            case EdkDll.EE_CognitivAction_t.COG_NEUTRAL:
            {
                count_clear("tf");
                outer.manualHover();           //forcing manula hovering.
                break;
            }

            case EdkDll.EE_CognitivAction_t.COG_PUSH:
            {
                count_clear("tf");
                outer.button1_Click(sender, e);                // forward command
                break;
            }

            case EdkDll.EE_CognitivAction_t.COG_PULL:
            {
                count_clear("t");
                if (forward_count % 2 == 0)
                {
                    outer.Backwards_Click(sender, e);              // forwad backward
                }
                forward_count++;

                break;
            }

            case EdkDll.EE_CognitivAction_t.COG_LIFT:
            {
                // if (takeoff_bool == false)
                // {
                if (takeoff_count % 3 == 0)
                {
                    outer.Takeoff_Click(sender, e);             // takeoff
                }

                //takeoff_bool = true;

                //}
                //else
                //{
                //    // already take off so rotate
                //    if (takeoff_count % 2 == 0)
                //    {
                //        outer.button7_Click(sender, e); /// more up
                //    }
                takeoff_count++;
                //}
                count_clear("f");

                break;
            }

            case EdkDll.EE_CognitivAction_t.COG_DROP:
            {
                outer.Landing_Click(sender, e);          // landing
                count_clear("tf");
                takeoff_bool = false;
                break;
            }
            }


            // Console.Write("{0}", cogAction);
            cogLog.WriteLine("{0},{1},{2},{3}", timeFromStart, cogAction, power, isActive);   // writing to log file
            cogLog.Flush();
        }
Example #25
0
 public void CognitivSetTrainingAction(uint userId, EdkDll.EE_CognitivAction_t action)
 {
     EmoEngine.errorHandler(EdkDll.EE_CognitivSetTrainingAction(userId, action));
 }
Example #26
0
 private static extern int Unmanged_EE_CognitivSetTrainingAction(uint userId, EdkDll.EE_CognitivAction_t action);
Example #27
0
 public static int EE_CognitivGetActionSkillRating(uint userId, EdkDll.EE_CognitivAction_t action, out float pActionSkillRatingOut)
 {
     return(EdkDll.Unmanged_EE_CognitivGetActionSkillRating(userId, action, out pActionSkillRatingOut));
 }
Example #28
0
 public static int EE_CognitivGetTrainingAction(uint userId, out EdkDll.EE_CognitivAction_t pActionOut)
 {
     return(EdkDll.Unmanged_EE_CognitivGetTrainingAction(userId, out pActionOut));
 }
Example #29
0
 public static int EE_CognitivSetTrainingAction(uint userId, EdkDll.EE_CognitivAction_t action)
 {
     return(EdkDll.Unmanged_EE_CognitivSetTrainingAction(userId, action));
 }
Example #30
0
 public static int EE_CognitivSetCurrentLevel(short userId, EdkDll.EE_CognitivLevel_t level, EdkDll.EE_CognitivAction_t level1Action, EdkDll.EE_CognitivAction_t level2Action, EdkDll.EE_CognitivAction_t level3Action, EdkDll.EE_CognitivAction_t level4Action)
 {
     return(EdkDll.Unmanaged_EE_CognitivSetCurrentLevel(userId, level, level1Action, level2Action, level3Action, level4Action));
 }
Example #31
0
 private static extern int Unmanaged_EE_CognitivSetCurrentLevel(short userId, EdkDll.EE_CognitivLevel_t level, EdkDll.EE_CognitivAction_t level1Action, EdkDll.EE_CognitivAction_t level2Action, EdkDll.EE_CognitivAction_t level3Action, EdkDll.EE_CognitivAction_t level4Action);
Example #32
0
 private static extern int Unmanged_EE_CognitivGetActionSkillRating(uint userId, EdkDll.EE_CognitivAction_t action, out float pActionSkillRatingOut);
Example #33
0
 // 向后状态学习按钮
 private void button8_Click(object sender, EventArgs e)
 {
     EmoEngine.Instance.CognitivSetActivationLevel(0, 5);
     actions = actions | EdkDll.EE_CognitivAction_t.COG_PULL;
     EmoEngine.Instance.CognitivSetActiveActions(0, (UInt32)actions);
     EmoEngine.Instance.CognitivSetTrainingAction(0, EdkDll.EE_CognitivAction_t.COG_PULL);
     EmoEngine.Instance.CognitivSetTrainingControl(0, EdkDll.EE_CognitivTrainingControl_t.COG_START);
     numOfStu = 7;
 }