Log in

View Full Version : [cRIO] Robot Drive... Output not updated often enough.


sthreet
20-01-2014, 23:15
I got this error. According to another question on here this means that something caused the program to stop running.

No errors in code, no idea why it is happening.

The code I tested (Deleted all comments, hope it is readable.)

package edu.wpi.first.wpilibj.templates;


//import edu.wpi.first.wpilibj.Compressor;
//import edu.wpi.first.wpilibj.DigitalInput;
import edu.wpi.first.wpilibj.SimpleRobot;
import edu.wpi.first.wpilibj.RobotDrive;
import edu.wpi.first.wpilibj.Timer;
import edu.wpi.first.wpilibj.Joystick;
//import edu.wpi.first.wpilibj.Solenoid;
//import edu.wpi.first.wpilibj.Talon;
//import edu.wpi.first.wpilibj.Watchdog;

public class team4692robot extends SimpleRobot
{
RobotDrive drive = new RobotDrive(1, 2);
Joystick left = new Joystick(1);
Joystick right = new Joystick(2);

public void autonomous()
{
int autotimer=0;

while(true && isAutonomous() && isEnabled())
{
if(autotimer<100)
{
drive.tankDrive(.4, -.4);
}
else
{
drive.tankDrive(0, 0);
}

autotimer++;
Timer.delay(.005);
}
}

/**
* This function is called once each time the robot enters operator control.
*/
public void operatorControl()
{

while(true && isOperatorControl() && isEnabled())
{
double leftpow=left.getY(); double rightpow=right.getY();
double powermod=.25;
if(left.getTrigger())
{
powermod+=.25;
}
if(right.getTrigger())
{
powermod+=.5;
}
leftpow*=powermod; rightpow*=powermod;

drive.tankDrive(leftpow, rightpow);
Timer.delay(.005);

}
}

public void test()
{

}

}

Joe Ross
20-01-2014, 23:51
Use [ code] tags to make the code more readable.

Scroll up in the output window and see what is printed before the "Robot Drive... Output not updated often enough."

I don't see anything immediately wrong with the code. Is this the code you were running?

sthreet
22-01-2014, 14:37
Sorry I didn't reply yesterday, internet was broken.


[cRIO] task 0xca7f88 (worker.0) deleted: errno=0 (0) status=0 (0)

[cRIO] edu.wpi.first.wpilibj.networktables2.server.Server ConnectionAdapter@b entered connection state: GOT_CONNECTION_FROM_CLIENT

[cRIO] edu.wpi.first.wpilibj.networktables2.server.Server ConnectionAdapter@b entered connection state: CONNECTED_TO_CLIENT

[cRIO] Robot Drive... Output not updated often enough.

[cRIO] edu.wpi.first.wpilibj.networktables2.server.Server ConnectionAdapter@b entered connection state: CLIENT_DISCONNECTED

[cRIO] Close: edu.wpi.first.wpilibj.networktables2.server.Server ConnectionAdapter@b


Here is code: (deleted commented stuff.) (I'm fairly certain this is the same code that I posted, but I uncommented and recommented stuff so it may have changed. I was running this code. There is more complicated stuff commented out, but not to bad, just commented stuff out that wasn't actually connected to the digital sidecar/whatnot yet.)


package edu.wpi.first.wpilibj.templates;


import edu.wpi.first.wpilibj.SimpleRobot;
import edu.wpi.first.wpilibj.RobotDrive;
import edu.wpi.first.wpilibj.Timer;
import edu.wpi.first.wpilibj.Joystick;

public class team4692robot extends SimpleRobot
{
RobotDrive drive = new RobotDrive(1, 2);
Joystick left = new Joystick(1);
Joystick right = new Joystick(2);

public void autonomous()
{
int autotimer=0;

while(true && isAutonomous() && isEnabled())
{
if(autotimer<100)
{
drive.tankDrive(.4, -.4);
}
else
{
drive.tankDrive(0, 0);
}

autotimer++;
Timer.delay(.005);
}
}

public void operatorControl()
{
while(true && isOperatorControl() && isEnabled())
{
double leftpow=left.getY(); double rightpow=right.getY();
double powermod=.25;
if(left.getTrigger())
{
powermod+=.25;
}
if(right.getTrigger())
{
powermod+=.5;
}
leftpow*=powermod; rightpow*=powermod;

drive.tankDrive(leftpow, rightpow);
Timer.delay(.005);
}
}

public void test()
{

}

}

BradAMiller
22-01-2014, 16:44
I don't see anything wrong with the code that would cause that message to be printed. RobotDrive requires the motors to be update every 0.1 seconds (expirationTime) before the robot safety code will stop them.

Make sure that the correct project is loaded in the robot.

RufflesRidge
22-01-2014, 18:46
How many times are you seeing the message appear in the Diagnostics window? If it is constant/appearing many times it's something to worry about. If you see it happen only once or twice when the robot is transitioning between states I wouldn't worry about it.

sthreet
23-01-2014, 16:19
How many times are you seeing the message appear in the Diagnostics window? If it is constant/appearing many times it's something to worry about. If you see it happen only once or twice when the robot is transitioning between states I wouldn't worry about it.
Just once, but I don't know when, I can't see the window while driving it. (Don't know how to drive in developer.)

I don't see anything wrong with the that would cause that message to be printed. RobotDrive requires the motors to be update every 0.1 seconds (expirationTime) before the robot safety code will stop them.

Make sure that the correct project is loaded in the robot.
I am right click->running, pretty sure I am clicking on the right one.

Joe Ross
23-01-2014, 16:25
Just once, but I don't know when, I can't see the window while driving it. (Don't know how to drive in developer.)

Just run the driver station software.

nyaculak
23-01-2014, 19:14
This is a problem created by the wpilib's safety system(s)...Actually, you should just kill them. Call this function in the robotInit().

private void killSafety() {
drive.setSafetyEnabled(false);
Watchdog.getInstance().kill();
}

sthreet
23-01-2014, 21:19
This is a problem created by the wpilib's safety system(s)...Actually, you should just kill them. Call this function in the robotInit().

private void killSafety() {
drive.setSafetyEnabled(false);
Watchdog.getInstance().kill();
}


So I added this to my code:

public void robotInit()
{
drive.setSafetyEnabled(false);
Watchdog.getInstance().kill();
}

Changed nothing, except the timeout messege didn't display

EDIT: We appear to be having ping problems. Robot Radio and Crio are fine. other stuff is bad. (forgot what exactly was bad, but their were two things.)

EDIT: Found this error:
Warning <Code> 44002 occurred at Ping Results: link-bad, DS radio(.4)-bad, robot radio(.1)-bad, cRIO(.2)-bad, FMS-bad Driver Station
We are attempting to switch out digital sidecars to see if that is the problem.