Can't use joystick when using two CAN Jaguars

We are currently only able to control one CAN Jaguar in our code. Adding a second CANJaguar object creates a problem where the joystick values are not getting read into the robot. Even with the second CANJaguar (called m_JaguarLeft below) only created and initialized (no methods being called on it), and the robot stops responding to the joystick. The joystick is seen by the drive station, and the values are being displayed on all of the appropriate views.

class Robot: public SampleRobot
{
	RobotDrive myRobot; // robot drive system
	Joystick stick; // only joystick
	CANJaguar m_JaguarRight, m_JaguarLeft;
public:
	Robot() :
		myRobot(0, 1),	// initialize the RobotDrive to use motor controllers on ports 0 and 1
		stick(0),
		m_JaguarRight(3),
		m_JaguarLeft(2)
	{
		//LiveWindow *lw;

		m_JaguarRight.SetPercentMode(CANJaguar::QuadEncoder, 360);
		m_JaguarRight.EnableControl();
		m_JaguarRight.Set(0.0f);

		m_JaguarLeft.SetPercentMode(CANJaguar::QuadEncoder, 360);
		m_JaguarLeft.EnableControl();
		m_JaguarLeft.Set(0.0f);
		myRobot.SetExpiration(0.1);
	}
	void Disabled()
	{
		while(IsDisabled()){}
	}


	void RobotInit()
	{
		//lw = LiveWindows::GetInstance();

	}
	/**
	 * Runs the motors with arcade steering.
	 */
	void OperatorControl(void)
	{
		myRobot.SetSafetyEnabled(true);
		while (IsOperatorControl())
		{
			m_JaguarRight.Set(stick.GetY()); // drive with arcade style (use right stick)
			m_JaguarLeft.Set(stick.GetY());
			Wait(0.005);				// wait for a motor update time
		}
	}

};

We are getting our new programmers introduced into FRC, and are moving to C++ coding this year. Everyone is at a loss as to what is going on with this not working.

Does the driver-station still say teleop-enabled when the Jags are misbehaving?
If so then the problem is likely RIO <=> Jag, not Gamepad <=> RIO.

Are the eclipse-plugins up-to-date 1/15/2016? Prolly not the issue but worth checking.

What are the Jag LEDs doing when they are misbehaving. Be sure they both show up in the roboRIO web-based config okay.

Replying from home, but same person (not on the team account).

The drivers station does show Teleop-enabled, with communication, robotcode, and joystick indicators all green.

I can double check this today. I am not sure if we updated it since getting everything installed the Monday after kickoff. Hopefully it is that simple.

Both Jags have solid yellow LEDs while the robot is enabled, indicating they are getting a signal. The roboRIO webpage shows the Jags with the IDs in the above code.

At one point we had the joystick axis values printing out to a log to check if the value was changing, but the joystick Y-axis remained at zero no mater where the actual joystick was. Again, the DS showed that the joystick moved, but the code was not seeing this change.

We don’t use the “SimpleRobot” framework (we instead use Command-Based robot), but I wonder if you’re using up a resource (maybe CAN bandwidth?) by sending too many messages too quickly.

The rate of DS control packet updates is only 50Hz. I’d suggest changing the Wait(0.005) to Wait (0.02) and seeing if that helps.

Thanks everyone the update to the library worked so now everything is running well