Exemple #1
0
    public void StartReading()
    {
        if (reading)
        {
            Debug.Log("EMGManager: already reading.");
            return;
        }

        if (processor == null)
        {
            Setup();
        }

        processor.Start();

        if (reader.HasError)
        {
            Debug.Log("Error occured when starting reader.");
            processor.StopAndJoin();
            processor = null;
            return;
        }

        reading = true;
    }
Exemple #2
0
    void Start()
    {
        manager = EMGManager.Instance;
        manager.Setup();

        processor = manager.Processor;
    }
Exemple #3
0
    public void StopReading()
    {
        if (!reading)
        {
            Debug.Log("EMGManager: not reading.");
            return;
        }

        processor.StopAndJoin();
        processor = null;
        reading   = false;
    }
    public void WidgetCallback()
    {
        EMGProcessor proc = EMGManager.Instance.Processor;

        ticks++;

        modeText.text            = "Mode: " + proc.CurrentMode;
        sampleCountText.text     = "Tr. Sample Count: " + proc.TrainingDataLength;
        setMuscleStateText.text  = "Set MuscleState: " + proc.CurrentMuscleState;
        predMuscleStateText.text = "Predicted MuscleState: " + proc.PredictedMuscleState;
        ticksText.text           = "Ticks: " + ticks.ToString();
    }
Exemple #5
0
    public void Setup()
    {
        manager       = EMGManager.Instance;
        processor     = manager.Processor;
        currentWeapon = sphereGun;

        if (!enableFakeLoop)
        {
            processor.AddProcessorCallback(widget.WidgetCallback);
            processor.AddProcessorCallback(DemoCallback);
        }
        else
        {
            StartCoroutine(FakeEMGLoop());
        }
    }
Exemple #6
0
    public void Setup()
    {
        if (!useFile)
        {
            reader = new EMGSerialReader(portName, maxQueueSize);
        }
        else
        {
            FileStream stream;
            try {
                stream = File.OpenRead(Application.dataPath + "/" + filePath);
            } catch (Exception e) {
                Debug.LogError("EMGManager: Unable to read file: " + e);
                return;
            }

            EMGFileReader fileReader = new EMGFileReader(stream, maxQueueSize);
            fileReader.EnableFileLoop();
            reader = fileReader;
        }

        processor = new EMGProcessor(reader);
    }
Exemple #7
0
    public void OnButtonClicked()
    {
        if (processor != null)
        {
            OnTrainingFinished();
            return;
        }

        manager.portName         = portInput.text;
        startButton.interactable = false;
        timeSlider.interactable  = false;
        manager.Setup();
        processor = manager.Processor;
        manager.StartReading();

        if (skipMode)
        {
            demoController.enableFakeLoop = true;
            OnTrainingFinished();
            return;
        }

        StartCoroutine(TrainingCoroutine());
    }