示例#1
0
        private void ProcessPacket(OSCPacket packet)
        {
            foreach (OSCPacket p in packet.Data)
            {
                if (p.IsBundle())
                {
                    ProcessPacket(p);
                }
                else
                {
                    OSCMessage msg = (OSCMessage)p;

                    if ((EyesStatus)msg.Extra != EyesStatus.NONE)
                    {
                        Status = (EyesStatus)msg.Extra;
                    }

                    if (msg.Address == "/muse/elements/alpha_absolute")
                    {
                        if (!Training || (Training && alphaIgnore == 0 && keepTrainingData))
                        {
                            if (alphaSet)
                            {
                                alpha2   = (float)msg.Data[0];
                                alphaSet = false;

                                if (prevStatus == Status)
                                {
                                    TrainingValue trainingValue = new TrainingValue((int)Status, 2);
                                    trainingValue.Features[0] = alpha1;
                                    trainingValue.Features[1] = alpha2;
                                    AlphaTrainingValues.Add(trainingValue);
                                }
                            }
                            else
                            {
                                alpha1   = (float)msg.Data[0];
                                alphaSet = true;
                            }
                        }
                        else if (Training && alphaIgnore != 0)
                        {
                            alphaIgnore--;
                        }

                        prevStatus = Status;
                    }
                    else if (msg.Address == "/muse/eeg")
                    {
                        tp9.Add((float)msg.Data[0]);
                        af7.Add((float)msg.Data[1]);
                        af8.Add((float)msg.Data[2]);
                        tp10.Add((float)msg.Data[3]);
                    }
                }
            }
        }
示例#2
0
 public void Reset()
 {
     af7.Clear();
     af8.Clear();
     tp9.Clear();
     tp10.Clear();
     TrainingValues.Clear();
     AlphaTrainingValues.Clear();
     trainer  = null;
     training = false;
     readingsMean.Clear();
     status = EyesStatus.NONE;
     ignore = SKIP;
 }