示例#1
0
        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");
                }
            }));
        }
示例#2
0
        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");
            }
        }
示例#3
0
        private void Emg1c_ConnectionFailed(object sender, MessageReceiveEventArgs e)
        {
            Invoke(new Action(() =>
            {
                switch (e.Message)
                {
                case "Reconnect":
                    btnConnect1ChannelEmg.Text = "Connect";
                    break;

                default:
                    break;
                }
            }));
        }
示例#4
0
 private void EMG_ReceiveMessageHandler(object sender, MessageReceiveEventArgs e)
 {
     MessageBox.Show(e.Message);
 }
示例#5
0
        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());
                }
            }
        }
示例#6
0
 private void Rfid_ReceiveMessageHandler(object sender, MessageReceiveEventArgs e)
 {
     throw new NotImplementedException();
 }
 protected virtual void OnMessageReceived(MessageReceiveEventArgs args)
 {
     ReceiveMessageHandler?.Invoke(this, args);
 }