Driver Station ERROR:

I’m the head coder for our team: 3346. I ran into this error today on the driver station:


ERROR: A timeout has been exceeded: RobotDrive...Output not updated often enough. ...in Check() in c:/Windriver/workspace/WPILib/MotorSafetyHelper.cpp at line 123
No Change to Network Configuration: "Local Area Connection""Wireless Network Connection"
I/O unit not detected or not installed correctly.

That is the error I receive on the driver station. The lights are green for robot communications and robot code but when I enable nothing works.

Here is my .cpp:

#include "WPILib.h"

class RobotDemo : public SimpleRobot 
{

RobotDrive myRobot;
Jaguar ballpicker;
Joystick leftStick; // left joystick in USB 1 of the DS
Joystick rightStick; // and right JS is in USB 2 of the DS
DriverStationLCD *display;
Solenoid sol1;
Solenoid sol2;
Compressor compress;

public:
	RobotDemo():
		myRobot(1,2), // Drive Motors
		
		ballpicker(3), // Motor That Picks Up Balls
		
		leftStick(1), 
		rightStick(2),
		
		sol1(7,1), // MIGHT HAVE TO CHANGE FIRST COORDINATE BECUASE MODULES-
		sol2(7,8), // HAVE CHANGED THIS YEAR!!!
		
		compress(1,1)

	{
		myRobot.SetExpiration(0.1);

		display = DriverStationLCD::GetInstance();
	}
	
	void Autonomous(void)
	{
		myRobot.SetSafetyEnabled(true); // Autonomous Period
		myRobot.Drive(0.6, 0.0);        // Drives Forward->Half Speed->2 Seconds.
		Wait(5.0);                      
		myRobot.Drive(0.0, 0.0);   
	}
	
	void OperatorControl(void)  
	{
		
			GetWatchdog().SetEnabled(true);
			compress.Start();                // Starts the Compressor
			while (IsOperatorControl()) 
			{
				GetWatchdog().Feed();
				myRobot.ArcadeDrive(leftStick); // Arcade Style--> Left Stick
		/*	
        char text[255];
        char text2[255];
        display->Clear();
        
				if(rightStick.GetTrigger())
				{
					  arm2.Set(0.9); //full speed if trigger is pressed
            sprintf(text, "Arm 2: 0.9");
            display->PrintfLine(DriverStationLCD::kUser_Line1, text);
				}
				else
				{
					  arm2.Set(0.0); //when trigger is not pressed, no power
            sprintf(text, "Arm 2: 0.0");
            display->PrintfLine(DriverStationLCD::kUser_Line1, text);
				}
				if (rightStick.GetRawButton(3))
				{
				          arm.Set(1.0); // full speed if trigger pressed
                  sprintf(text2, "Arm: 1.0");
                  display->PrintfLine(DriverStationLCD::kUser_Line2, text2);
				}
				else
				{
				 	  arm.Set(0.0); //no power if button 3 is not pressed
            sprintf(text2, "Arm: 0.0");
            display->PrintfLine(DriverStationLCD::kUser_Line2, text2);
				}

        display->UpdateLCD();
*/

		
		if (leftStick.GetRawButton(3))
		{
			ballpicker.Set(0.1); // --> If Button 3-->Input-->10% Power
		}
							
		else
		{
			ballpicker.Set(0.0); // --> If Button 3-->No Input-->No Power
		}                        // Left Stick Is For Driver/Ball Picker Up'er

        if(rightStick.GetTrigger()) // Right Stick Is For Shooter
        {
        	sol1.Set(true); // --> If Right Trigger-->Input-->Valve 1-->True
        	sol2.Set(false); // --> Valve 2-->False
        }
        else
        {
        	sol1.Set(false); // --> If Right Trigger-->No Input-->Valve 1-->False
        	sol2.Set(true); // --> Valve 2-->True
        }
        
				Wait(0.005);	// --> Allows Time for Motor Refresh/Update
			}
// COPYRIGHT MUHAMMAD SULAIMAN--> NO ONE MESSES WITH THE ZOHAN!
	}
};

START_ROBOT_CLASS(RobotDemo);

Please ignore the comments.

Thank You. Can someone please help me. I believe that my loop is being examined over and over again. Do I need a semicolon after while (IsOperatorControl()) I believe I do. I just didn’t have time to add that today, but will try adding that and deploying code tomorrow since robotics just ended. But that thought hit me right after I left. Is that a solution? Or is it something else?