/// <summary> /// Intilizes and defines functions for the read to happen and be reported on sliders. /// </summary> public void Activate() { ValuesRead = Enumerable.Repeat(new EmotivState(EmotivCommandType.NULL, 0, 0), Interval).ToArray(); inputGenerator = InputContainer.Instence; IntervalOffset = 0; inputGenerator.OnYes = () => forcedYes = true; inputGenerator.OnNo = () => forcedYes = false; reader = new BasicEmotivReader(deviceHolder.Device); //reader.OnStop = () => Debug.Log("Stopped"); reader.OnRead += (e) => { if (e.Command == EmotivCommandType.NULL) { return; } //Debug.Log(e.ToString()); if (forcedYes) { ValuesRead[IntervalOffset = (IntervalOffset + 1 % Interval) % Interval] = new EmotivState(TargetCommand, PassThreshhold, 0); } else { ValuesRead[IntervalOffset = (IntervalOffset + 1 % Interval) % Interval] = e; } }; reader.OnStop += (s) => { Debug.Log("I stoped: " + s); }; // deviceHolder.Device.OnDisconnectAttempted += (suc,s) => Debug.Log("OnDisconnectAttempted: "+ s); deviceHolder.Device.OnDisconnectAttempted += (suc, s) => Debug.Log("OnDisconnectAttempted: " + s); reader.ExceptionHandler += (e) => { Debug.Log("Exp"); throw e; }; reader.StartReading(); StartCoroutine(SliderUpdate()); }
/// <summary> /// Creates and attaches Timemline to reader /// </summary> /// <param name="Device"></param> /// <param name="Reader"></param> public override void Setup(IEmotivDevice Device, IEmotivReader Reader) { Timeline = new Timeline <IEmotivState>(); Reader.OnRead += e => Timeline.Register(e); }
/// <summary> /// Sets up interpretation. /// </summary> /// <param name="Device"></param> /// <param name="Reader"></param> public abstract void Setup(IEmotivDevice Device, IEmotivReader Reader);
/// <summary> /// Sets up created device /// </summary> /// <see cref="CreateReader(IEmotivDevice)"/> /// <param name="device"></param> public override void SetUp(IEmotivDevice device) { Content = CreateReader(device); }