/// <summary>
        /// Called when the Myo sends a <see cref="MyoEventType.Emg"/> event.
        /// </summary>
        /// <param name="evt">The pointer to the event.</param>
        /// <param name="timestamp">The timestamp of the event.</param>
        protected virtual void OnEmgData(IntPtr evt, DateTime timestamp)
        {
            const int NUMBER_OF_SENSORS = 8;
            var       rawEmgData        = new int[NUMBER_OF_SENSORS];

            for (int i = 0; i < rawEmgData.Length; i++)
            {
                rawEmgData[i] = _myoDeviceDriver.GetEventEmg(evt, i);
            }

            var emgData = Device.EmgData.Create(rawEmgData);

            this.EmgData = emgData;

            var handler = EmgDataAcquired;

            if (handler != null)
            {
                var args = new EmgDataEventArgs(
                    this,
                    timestamp,
                    emgData);
                handler.Invoke(this, args);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Called when the Myo sends a <see cref="MyoEventType.Emg"/> event.
        /// </summary>
        /// <param name="evt">The pointer to the event.</param>
        /// <param name="timestamp">The timestamp of the event.</param>
        protected virtual void OnEmgData(IntPtr evt, DateTime timestamp)
        {
            // Contract.Requires<ArgumentException>(evt != IntPtr.Zero, "The event handle must be set.");

            const int NUMBER_OF_SENSORS = 8;
            var       rawEmgData        = new int[NUMBER_OF_SENSORS];

            for (int i = 0; i < rawEmgData.Length; i++)
            {
                rawEmgData[i] = _myoDeviceDriver.GetEventEmg(evt, i);
            }

            var emgData = Device.EmgData.Create(rawEmgData);

            this.EmgData = emgData;

            var handler = EmgDataAcquired;

            if (handler != null)
            {
                var args = new EmgDataEventArgs(
                    this,
                    timestamp,
                    emgData);
                handler.Invoke(this, args);
            }
        }
        public void GetEmgData_ValidState_EqualsConstructorParameter()
        {
            // Setup
            var emgData = new Mock<IEmgData>();

            var args = new EmgDataEventArgs(
                new Mock<IMyo>().Object,
                DateTime.UtcNow,
                emgData.Object);

            // Execute
            var result = args.EmgData;

            // Assert
            Assert.Equal(emgData.Object, result);
        }
Beispiel #4
0
        /// <summary>
        /// Called when EMG data has been acquired from the Myo.
        /// </summary>
        /// <param name="evt">The pointer to the event.</param>
        /// <param name="timestamp">The timestamp of the event.</param>
        protected virtual void OnEMGData(IntPtr evt, DateTime timestamp)
        {
            var emg = new int[8];

            this.EMG = emg;

            for (int i = 0; i < 8; i++)
            {
                emg[i] = GetEMGData(evt, i);
            }

            var handler = EMG;

            if (handler != null)
            {
                var args = new EmgDataEventArgs(
                    this,
                    timestamp,
                    emg);
                EmgDataAcquired(this, args);
            }
        }
Beispiel #5
0
 private void Myo_EmgDataAcquired(object sender, EmgDataEventArgs e)
 {
     // pull data from each sensor
     for (var i = 0; i < _sensors; ++i)
     {
         _pointPairs[i] = e.EmgData.GetDataForSensor(i);
     }
 }
        public void GetMyo_ValidState_EqualsConstructorParameter()
        {
            // Setup
            var myo = new Mock<IMyo>();

            var args = new EmgDataEventArgs(
                myo.Object,
                DateTime.UtcNow,
                new Mock<IEmgData>().Object);

            // Execute
            var result = args.Myo;

            // Assert
            Assert.Equal(myo.Object, result);
        }
        public void GetTimestamp_ValidState_EqualsConstructorParameter()
        {
            // Setup
            var timestamp = DateTime.UtcNow;

            var args = new EmgDataEventArgs(
                new Mock<IMyo>().Object,
                timestamp,
                new Mock<IEmgData>().Object);

            // Execute
            var result = args.Timestamp;

            // Assert
            Assert.Equal(timestamp, result);
        }
Beispiel #8
0
 private static void Myo_EmgDataAcquired(object sender, EmgDataEventArgs e)
 {
     // TODO: write your code to interpret EMG data!
 }