Exemplo n.º 1
0
        private void engine_EmoEngineEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
        {
            EmoState es = e.emoState;

            Single timeFromStart = es.GetTimeFromStart();

            Int32 headsetOn = es.GetHeadsetOn();

            EdkDll.EE_SignalStrength_t signalStrength = es.GetWirelessSignalStatus();

            Int32 chargeLevel    = 0;
            Int32 maxChargeLevel = 0;

            es.GetBatteryChargeLevel(out chargeLevel, out maxChargeLevel);
            textBox2.Text = chargeLevel.ToString() + '/' + maxChargeLevel.ToString();
            // HT_Signalstrt.Text = signalStrength.ToString();

            engineLog.Write(
                "{0},{1},{2},{3},{4},",
                timeFromStart,
                headsetOn, signalStrength, chargeLevel, maxChargeLevel);


            engineLog.WriteLine("");
            engineLog.Flush();
        }
Exemplo n.º 2
0
        static void engine_EmoEngineEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
        {
            EmoState es = e.emoState;

            Single timeFromStart = es.GetTimeFromStart();

            Int32 headsetOn = es.GetHeadsetOn();
            Int32 numCqChan = es.GetNumContactQualityChannels();

            EdkDll.EE_EEG_ContactQuality_t[] cq = es.GetContactQualityFromAllChannels();
            for (Int32 i = 0; i < numCqChan; ++i)
            {
                if (cq[i] != es.GetContactQuality(i))
                {
                    throw new Exception();
                }
            }
            EdkDll.EE_SignalStrength_t signalStrength = es.GetWirelessSignalStatus();
            Int32 chargeLevel    = 0;
            Int32 maxChargeLevel = 0;

            es.GetBatteryChargeLevel(out chargeLevel, out maxChargeLevel);

            engineLog.Write(
                "{0},{1},{2},{3},{4},",
                timeFromStart,
                headsetOn, signalStrength, chargeLevel, maxChargeLevel);

            for (int i = 0; i < cq.Length; ++i)
            {
                engineLog.Write("{0},", cq[i]);
            }
            engineLog.WriteLine("");
            engineLog.Flush();
        }
Exemplo n.º 3
0
        static void engine_EmoEngineEmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
        {
            EmoState es = e.emoState;

            Single timeFromStart = es.GetTimeFromStart();

            Int32 headsetOn = es.GetHeadsetOn();

            EdkDll.IEE_SignalStrength_t signalStrength = es.GetWirelessSignalStatus();
            Int32 chargeLevel    = 0;
            Int32 maxChargeLevel = 0;

            es.GetBatteryChargeLevel(out chargeLevel, out maxChargeLevel);
        }
        protected void EmoEngineEmoStateUpdatedCB(object sender, EmoStateUpdatedEventArgs e)
        {
            EmoState es = e.emoState;

            //Update connexion status
            lock (syncLock)
            {
                mEmoState       = es;
                mIsHeadsetOn    = es.GetHeadsetOn() != 0;
                mCQ             = es.GetContactQualityFromAllChannels();
                mSignalStrength = es.GetWirelessSignalStatus();
                es.GetBatteryChargeLevel(out mBatteryCharge, out mBatteryMaxCharge);
                mTimeFromStart = es.GetTimeFromStart();
            }
        }
        static void Engine_EmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
        {
            EmoState es = e.emoState;

            hsOn = es.GetHeadsetOn();
            My_Program.myForm.textBox2.Text = $"ESUpdate.";


            My_Program.myForm.textBox7.Text = "";
            //If HS is swiched OFF during run, it does not changes, so it only reacts
            //on switching HS ON for the first time After UserAdded Event only. Useless.
            My_Program.myForm.textBox7.Text = $"{hsOn}";
            //Getting events is useless or impossible. None of the below doesn't work as promised!
            // es.GetHandle() returns the State of the event.
            EdkDll.IEE_Event_t thisEvent = EdkDll.IEE_EmoEngineEventGetType(es.GetHandle());

            //My_Program.myForm.textBox7.Text = $"{EdkDll.IEE_EmoEngineEventGetType(myEvent)}";
            //My_Program.myForm.textBox7.Text = $"{EdkDll.IEE_EngineGetNextEvent(myEvent)}";
            //My_Program.myForm.textBox7.Text = $"{EdkDll.IEE_EngineGetNextEvent(es.GetHandle())}";
            //EdkDll.IEE_Event_t eventType = EdkDll.IEE_EmoEngineEventGetType(hEvent);
            //My_Program.myForm.textBox1.Text = $"State:{myState};Now:{thisEvent.GetTypeCode()}";

            float timeFromStart = es.GetTimeFromStart();

            My_Program.myForm.textBox6.Text = $"{timeFromStart}";

            //When USB dongle plugged in, WiFi for some reason jumps to 2, even if HeadSet if OFF.
            //but if HS if off later, this doesn't change.
            if (hsOn != 0)
            {
                EdkDll.IEE_SignalStrength_t signalStrength = es.GetWirelessSignalStatus();
                WiFi = (int)signalStrength;
                //My_Program.myForm.textBox4.Text = $"{WiFi}";
                //The only way to reset headset ON switch if headset is OFF!!!
                if (WiFi == 0)
                {
                    hsOn = 0;
                    My_Program.myForm.textBox7.Text = $"{hsOn}";
                }
                else
                {
                    My_Program.myForm.textBox7.Text = $"{hsOn}";
                    Int32 chargeLevel    = 0;
                    Int32 maxChargeLevel = 0;
                    es.GetBatteryChargeLevel(out chargeLevel, out maxChargeLevel);
                    My_Program.myForm.textBox5.Text = $"{chargeLevel}";
                    //string myStr = "";
                    //EdkDll.IEE_InputChannels_t myChannelsList = new EdkDll.IEE_InputChannels_t();
                    //Get EEG Electrode Contact Quality and change the electrode image on the Form.
                    Dictionary <string, int> electrodeQuality = new Dictionary <string, int>();
                    foreach (EdkDll.IEE_InputChannels_t chan in Enum.GetValues(typeof(EdkDll.IEE_InputChannels_t)))
                    {
                        electrodeQuality.Add($"{chan}", (int)es.GetContactQuality((int)chan));
                        foreach (var myElectrode in My_Program.myElectrodes)
                        {
                            // myStr += chan;
                            if (myElectrode.Name == $"{chan}")
                            {
                                string newImage = $@"{My_Program.myEpoc.myPath}";
                                if (myElectrode.Name == "IEE_CHAN_CMS" || myElectrode.Name == "IEE_CHAN_DRL")
                                {
                                    newImage += $@"\relectrode_q{(int)es.GetContactQuality((int)chan)}.png";
                                }
                                else
                                {
                                    newImage += $@"\electrode_q{(int)es.GetContactQuality((int)chan)}.png";
                                }

                                myElectrode.Image = System.Drawing.Image.FromFile(newImage);
                                //myStr += chan + "WILL BE:" + (int)es.GetContactQuality((int)chan) + " | ";
                                //myStr += newImage;
                            }
                        }
                        //myStr += $"{(int)chan}";
                        // myStr += chan + ":" + (int)es.GetContactQuality((int)chan) + " | ";
                    }
                    //Individual electrode signal quality output
                    //EdkDll.IEE_WindowingTypes myWType = new EdkDll.IEE_WindowingTypes();
                    //My_Program.myForm.textBox1.Text = $"{EdkDll.IEE_FFTGetWindowingType((uint)userID, myWType)}";
                    //My_Program.myEpoc.myEngine.IEE_FFTGetWindowingType((uint)userID, myWType);
                    //My_Program.myForm.textBox1.Text = $"{myWType}";
                    outputBuffer["Type"] = "EpocRawBuffer";
                    Harvest_EEG_Headset();
                    Harvest_Wavebands_Headset();
                    outputBuffer["EQ"] = electrodeQuality;

                    //string json = new JavaScriptSerializer().Serialize(outputBuffer);
                    //if (My_Program.SRV)
                    //{
                    //    My_Program.myServer.Broadcast(json);
                    // }
                }
            }
        }