private void Hand_ReceiveMessageHandler(object sender, MessageReceiveEventArgs e) { int[] values = Array.ConvertAll(e.Message.Split(','), int.Parse); if (hand.RFIDEnabled) { if (values[15] != 0) { hand.HandRFID = (HandRFIDs)values[15]; Console.WriteLine(SendMessageConfig.SendRFIDFeedback((HandRFIDs)values[15])); } } Invoke(new Action(() => { try { // How to run these codes as parallel hand.Thumb.Position = values[0]; hand.Index.Position = values[1]; hand.Middle.Position = values[2]; hand.Ring.Position = values[3]; hand.Pinky.Position = values[4]; if (!handManualState) { trThumb.Value = values[0] > trThumb.Maximum ? trThumb.Maximum : (values[0] < trThumb.Minimum ? trThumb.Minimum : values[0]); trIndex.Value = values[1] > trIndex.Maximum ? trIndex.Maximum : (values[1] < trIndex.Minimum ? trIndex.Minimum : values[1]); trMiddle.Value = values[2] > trMiddle.Maximum ? trIndex.Maximum : (values[2] < trMiddle.Minimum ? trMiddle.Minimum : values[2]); trRing.Value = values[3] > trRing.Maximum ? trRing.Maximum : (values[3] < trRing.Minimum ? trRing.Minimum : values[3]); trPinky.Value = values[4] > trPinky.Maximum ? trPinky.Maximum : (values[4] < trPinky.Minimum ? trPinky.Minimum : values[4]); txtThumbPos.Text = trThumb.Value.ToString(); txtIndexPos.Text = trIndex.Value.ToString(); txtMiddlePos.Text = trMiddle.Value.ToString(); txtRingPos.Text = trRing.Value.ToString(); txtPinkyPos.Text = trPinky.Value.ToString(); SelectAllTextBoxes(); } thumbCur.Text = values[5].ToString(); indexCur.Text = values[6].ToString(); middleCur.Text = values[7].ToString(); ringCur.Text = values[8].ToString(); pinkyCur.Text = values[9].ToString(); lblThumbFsr.Text = values[10].ToString(); lblIndexFsr.Text = values[11].ToString(); lblMiddleFsr.Text = values[12].ToString(); lblRingFsr.Text = values[13].ToString(); lblTemppinky.Text = $"Temperature: {values[14]}"; panelTemp.BackColor = setTempColor(values[14]); lblRfid.Text = $"RFID : {values[15]}"; } catch (Exception ex) { MessageBox.Show(ex.GetBaseException().ToString() + "\n\n" + "Receiving from hand"); } })); }
private void Emg1c_MessageReceived(object sender, MessageReceiveEventArgs e) { //string[] values = e.Message.Split(new[] {':','#'}, StringSplitOptions.None); Match[] values = Regex.Matches(e.Message, @":+[0-9]+#").Cast <Match>().ToArray(); try { for (int i = 0; i < values.Length; i++) { string temp1 = values[i].Value; string temp = temp1.Substring(1, temp1.IndexOf('#') - 1); // threshold if (emg1cThresholdCheck.Checked) { if (int.Parse(temp) > numEmg1cThreshold.Value && !emg1cThresholdReach) { Console.WriteLine(SendMessageConfig.HandFist()); hand.SendMessage(SendMessageConfig.HandFist()); emg1cThresholdReach = true; } else if (int.Parse(temp) < numEmg1cThreshold.Value && emg1cThresholdReach) { Console.WriteLine(SendMessageConfig.HandOpen()); hand.SendMessage(SendMessageConfig.HandOpen()); emg1cThresholdReach = false; } } //Thread.Sleep(emg1c.Delay); if (int.TryParse(temp, out int j)) { emg1cChartValue.Add(new ChartModel() { Data = double.Parse(temp), Time = DateTime.Now }); Invoke(new Action(() => { emg1cChart.AxisX[0].MaxValue = DateTime.Now.Ticks + TimeSpan.FromSeconds(2).Ticks; emg1cChart.AxisX[0].MinValue = DateTime.Now.Ticks - TimeSpan.FromSeconds(10).Ticks; })); if (emg1cChartValue.Count > 100) { emg1cChartValue.RemoveAt(0); } } } } catch (Exception ex) { MessageBox.Show(ex.GetBaseException().ToString() + "\n\nFROM EMG1C RECEIVE"); } }
private void Emg1c_ConnectionFailed(object sender, MessageReceiveEventArgs e) { Invoke(new Action(() => { switch (e.Message) { case "Reconnect": btnConnect1ChannelEmg.Text = "Connect"; break; default: break; } })); }
private void EMG_ReceiveMessageHandler(object sender, MessageReceiveEventArgs e) { MessageBox.Show(e.Message); }
private void Emg_ReceiveMessageHandler(object sender, MessageReceiveEventArgs e) { double SumOfChannels = 0; if (e.Parameter == "EMG") { double[] values = Array.ConvertAll(e.Message.Split(','), double.Parse); try { for (int i = 0; i < 3; i++) { EmgChartValues[i].Add(new ChartModel { Data = (values[i]), Time = DateTime.Now }); //SumOfChannels += (values[i] * 100); } //double Threshold = (SumOfChannels / 3); //if (checkBox1.Checked) //{ // if ((decimal)Threshold > numMax.Value) // { // Console.WriteLine(SendMessageConfig.SendFromEmg8ToHand(emg.EmgGesture)); // hand.SendMessage(SendMessageConfig.SendFromEmg8ToHand(emg.EmgGesture)); // //Emg8ThresholdReach = true; // } // else if ((decimal)Threshold < numMax.Value) // { // Console.WriteLine(SendMessageConfig.SendFromEmg8ToHand(emg.EmgGesture)); // hand.SendMessage(SendMessageConfig.SendFromEmg8ToHand(emg.EmgGesture)); // //Emg8ThresholdReach = false; // } //} Invoke(new Action(() => { lblEMGgesture.Text = emg.EmgGesture.ToString(); EmgChart.AxisX[0].MaxValue = DateTime.Now.Ticks + TimeSpan.FromSeconds(1).Ticks; EmgChart.AxisX[0].MinValue = DateTime.Now.Ticks - TimeSpan.FromSeconds(3).Ticks; EmgChart1.AxisX[0].MaxValue = DateTime.Now.Ticks + TimeSpan.FromSeconds(1).Ticks; EmgChart1.AxisX[0].MinValue = DateTime.Now.Ticks - TimeSpan.FromSeconds(3).Ticks; EmgChart2.AxisX[0].MaxValue = DateTime.Now.Ticks + TimeSpan.FromSeconds(1).Ticks; EmgChart2.AxisX[0].MinValue = DateTime.Now.Ticks - TimeSpan.FromSeconds(3).Ticks; // EmgChart3.AxisX[0].MaxValue = DateTime.Now.Ticks + TimeSpan.FromSeconds(1).Ticks; // EmgChart3.AxisX[0].MinValue = DateTime.Now.Ticks - TimeSpan.FromSeconds(3).Ticks; // EmgChart4.AxisX[0].MaxValue = DateTime.Now.Ticks + TimeSpan.FromSeconds(1).Ticks; // EmgChart4.AxisX[0].MinValue = DateTime.Now.Ticks - TimeSpan.FromSeconds(3).Ticks; // EmgChart5.AxisX[0].MaxValue = DateTime.Now.Ticks + TimeSpan.FromSeconds(1).Ticks; // EmgChart5.AxisX[0].MinValue = DateTime.Now.Ticks - TimeSpan.FromSeconds(3).Ticks; // EmgChart6.AxisX[0].MaxValue = DateTime.Now.Ticks + TimeSpan.FromSeconds(1).Ticks; // EmgChart6.AxisX[0].MinValue = DateTime.Now.Ticks - TimeSpan.FromSeconds(3).Ticks; // EmgChart7.AxisX[0].MaxValue = DateTime.Now.Ticks + TimeSpan.FromSeconds(1).Ticks; // EmgChart7.AxisX[0].MinValue = DateTime.Now.Ticks - TimeSpan.FromSeconds(3).Ticks; if (EmgChartValues[0].Count > 100) { EmgChartValues[0].RemoveAt(0); } if (EmgChartValues[1].Count > 100) { EmgChartValues[1].RemoveAt(0); } if (EmgChartValues[2].Count > 100) { EmgChartValues[2].RemoveAt(0); } })); } catch (Exception ex) { MessageBox.Show(ex.GetBaseException().ToString()); } } }
private void Rfid_ReceiveMessageHandler(object sender, MessageReceiveEventArgs e) { throw new NotImplementedException(); }
protected virtual void OnMessageReceived(MessageReceiveEventArgs args) { ReceiveMessageHandler?.Invoke(this, args); }