We have been using windriver fine this whole season, when suddenly, our .out files stopped getting updated. No matter how many times we rebuilt the code, or restarted windriver, they still won’t build. Has anybody else had this problem, and how did you fix it?
if so you have to open windriver go to windows on the top menu bar, preferences, first deployment and make sure you file path is directing to the write .out file
no, we haven’t changed the name of the code, and the .out file path is correct. When building, it doesn’t update the .out file. The only solution we have seen is to restart windriver. The very first day of the build season that solved the problem, and it hasn’t come up since. Now it isn’t working.
ok… we have found a solution, but uncovered more problems.
first, we build the project. It does not create the .out file.
To solve this, we then rebuild the project (actually using “rebuild”) and it then correctly updates the .out file.
When we deploy the code, it appears as if it is being deployed properly. The transferring file bar goes all the way across. There are no errors at this point.
At this point, we reboot the robot. We have tried doing this both via the classmate rebooting the crio, and a manual reboot of the robot by resetting its power.
Then, we reestablish comms with the robot, only to see that the new code is not on the robot.
We have tried re-imaging the robot, and then repeating the above steps, all of them working fine. Now, instead of still having the same old code on the robot, we have no code on the robot. We are unable to get any code onto the robot.
We have tried deploying code from another computer as well, and it didn’t solve the problem.
Before re-imaging the crio, we tried undeploying code from the robot, but it would not work.
We said that we did that in our post above. We double checked it, and the path is properly set.
We followed that guide, and everything that it said to do, we have already done and tried multiple times. We have also gone through this and we still haven’t come across a solution to our problem.
Rosemount: Could you please post your source code? We have found WindRiver and vxWorks can do some odd things, sometimes an obscure runtime error will make the illusion of it uploading but older code is ran.
EDIT: You are doing Undeploy -> Deploy -> Reboot robot correct?
have you reimaged your crio?
have you updated windriver?
on the crio are all dongles off but counsel out?
have you done a clean build?
do you have anything in your code that is not hooked up to the robot?
ex: sensor, encoder…
That is correct. The first time we do it, a window opens and closes immediately, so we cannot read it. If we do that again, is says “Unable to delete the UserProgram from the robot.”
In an attempt to fix our problems we have created a new project and widdled our code down to the essentials.
RJoystick is just a subclass of Joystick.
Our ZomBDashboard was working before we ran into these issues.
#include "WPILib.h"
#include "ZomBDashboard.h"
#include "RJoystick.h"
/**
* This is a demo program showing the use of the RobotBase class.
* The SimpleRobot class is the base of a robot application that will automatically call your
* Autonomous and OperatorControl methods at the right time as controlled by the switches on
* the driver station or the field controls.
*/
class RobotDemo : public SimpleRobot
{
RobotDrive myRobot; // robot drive system
RJoystick leftstick; // only joystick
RJoystick rightstick;
ZomBDashboard zomb;
Jaguar winch_motor;
Compressor compressor;
public:
RobotDemo(void):
myRobot(1, 2), // these must be initialized in the same order
leftstick(1), // as they are declared above.
rightstick(2),
zomb(ZomBDashboard::GetInstance(TCP)),
winch_motor(3),
compressor(5,4)
{
myRobot.SetExpiration(0.1);
}
/**
* Drive left & right motors for 2 seconds then stop
*/
void Autonomous(void)
{
myRobot.SetSafetyEnabled(false);
myRobot.Drive(0.1, 0.0); // drive forwards half speed
Wait(2.0); // for 2 seconds
myRobot.Drive(0.0, 0.0); // stop robot
}
/**
* Runs the motors with arcade steering.
*/
void OperatorControl(void)
{
myRobot.SetSafetyEnabled(true);
while (IsOperatorControl())
{
compressor.Start();
leftstick.UpdateButtonStates();
rightstick.UpdateButtonStates();
myRobot.TankDrive(leftstick, rightstick);
if(zomb.CanSend())
{
zomb.Add("leftStickAxis", leftstick.GetY());
zomb.Add("rightStickAxis", rightstick.GetY());
zomb.Add("testtext", "RWRRSARSR");
zomb.Send();
}
Wait(0.02);//Min time to wait is 0.005
}
}
};
START_ROBOT_CLASS(RobotDemo);