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(); }
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(); }
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); // } } } }