From the C/C++ API
int CPhidgetStepper_setCurrentLimit (CPhidgetStepperHandle phid, int index, double limit)
Sets the current limit for a motor.
int CPhidgetStepper_getCurrent (CPhidgetStepperHandle phid, int index, double *current)
Gets the current current draw for a motor.
sets when the stepper controller's chopper drive cuts out, effectively limiting the current. getCurrent
returns the current being drawn by the motor at the time the function is called.
If you want to know what CurrentLimit has been set to, you should use CPhidgetStepper_getCurrentLimit
. As for your first question, I'm not sure why you're expecting the current change event to fire when you change the current limit- it's just a maximum, not the actual value. The position change handler shouldn't trigger as a result of changing the current limit either, but might it have triggered because the position changed at that time?