FIRST-Tech-Challenge/FtcRobotController

PwmControl.isPwmEnabled crashes

shelbyRobots opened this issue · 3 comments

I am able to use a CRServoImplEx instance to use setPwmEnable/Disable.
However, isPwmEnabled crashes the app with the following:
E EventLoopManager: com.qualcomm.robotcore.exception.RobotCoreException: EventLoop Exception in loop(): IllegalArgumentException - invalid pwm channel: 4

Steps:
crsix.setPwmDisable();
...do other stuff...
if(crsix.setPwmDisable) crsix.setPwmDisable();

I was able to do a work around by keeping a local variable of pwm energize state when I call disable - to avoid calling enable on an already pwm energized port.

ServoControllerEx with port number parameter seemed to give same results.

Looks to be a bug in the LynxGetServoEnableCommand constructor...

It reads

    public LynxGetServoEnableCommand(LynxModuleIntf module, int channelZ)
        {
        this(module);
        LynxConstants.validatePwmChannelZ(channelZ);
        this.channel = (byte)channelZ;
        }

But it should be

    public LynxGetServoEnableCommand(LynxModuleIntf module, int channelZ)
        {
        this(module);
        LynxConstants.validateServoChannelZ(channelZ);
        this.channel = (byte)channelZ;
        }

This will be fixed in the next release of the SDK.

Fixed in 7.1