private void OnEncoderPositionChange(object sender, Phidget22.Events.EncoderPositionChangeEventArgs e)
        {
            try
            {
                PositionChangeText = e.PositionChange.ToString() + "ticks";
                TimeChangeText     = e.TimeChange.ToString("F3") + "ms";

                if (e.IndexTriggered)
                {
                    IndexPositionText = _encoder.IndexPosition.ToString() + "ticks";
                }

                PositionText = _encoder.Position.ToString() + "ticks";

                if (_countsPerRevolution != -1)
                {
                    double timeChangeMinutes = e.TimeChange / 60000.0;
                    VelocityText = (((double)e.PositionChange / _countsPerRevolution) / timeChangeMinutes).ToString("F0");
                }
            }
            catch (PhidgetException ex)
            {
                MessageBox.Show("Error reading position: ", ex.Message);
            }
        }
 void encoderChangeCallback(object sender, Phidget22.Events.EncoderPositionChangeEventArgs e)
 {
     // With only one encoder, there's nothing really to ensure.
     transformChange = e.PositionChange;
 }