Solenoid Programming Errors

Hi CD,

This is my first year programming, and 4618’s first year using pneumatics. I’ve programmed according to the WPIlib screensteps and I keep getting an error every time I save and build the program.
Here’s what I’ve done(copied from sections of the program):

DoubleSolenoid *m_leftShifter;

m_leftShifter = new DoubleSolenoid(LEFT_DRIVE_LOW,LEFT_DRIVE_HIGH);

m_leftShifter.set(DoubleSolenoid.Value.kForward);

If someone could tell me what I’m doing wrong or how to fix this it would really be appreciated. If it helps, programming it as a Solenoid instead of DoubleSolenoid and using m_leftShifter.set(true); did not get rid of the problem.

EDIT: I could set a motor value successfully, just not the solenoids.

Thanks

The code in the WPI documentation tends to be for Java, not C++, and it looks like that’s what you’ve written here. (At least on the third line.)

Notice that m_leftShifter is of type DoubleSolenoid*. That means it’s a pointer to a DoubleSolenoid object, and so to access methods of that object (like Set()) you need to use the arrow operator (->).

Try this code instead:


DoubleSolenoid *m_leftShifter;
m_leftShifter = new DoubleSolenoid(LEFT_DRIVE_LOW,LEFT_DRIVE_HIGH);
m_leftShifter->Set(DoubleSolenoid::kForward);

That works! Thanks a ton (metric,of course).