예제 #1
0
        /// <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());
        }
예제 #2
0
 /// <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);
예제 #4
0
 /// <summary>
 /// Sets up created device
 /// </summary>
 /// <see cref="CreateReader(IEmotivDevice)"/>
 /// <param name="device"></param>
 public override void SetUp(IEmotivDevice device)
 {
     Content = CreateReader(device);
 }