Go to Post A constant awareness of safety is a plague I would welcome. - Alan Anderson [more]
Home
Go Back   Chief Delphi > Technical > Programming > Java
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #13   Spotlight this post!  
Unread 23-03-2012, 18:35
tp2357 tp2357 is offline
Registered User
AKA: Tyler Pawlaczyk
FRC #0340 (Greater Rochester Robotics)
Team Role: Programmer
 
Join Date: Mar 2012
Rookie Year: 2011
Location: North Chili, NY
Posts: 5
tp2357 is an unknown quantity at this point
Re: Need Serious help !!!!

Quote:
Originally Posted by RufflesRidge View Post
The operatorControl function is only called a single time so your code runs once, using one set of joystick info then does nothing for a long time.

You should surround the code you currently have in the operatorControl method with a loop:

while(isOperatorControl() && isEnabled())
{
}
Instead of using a while loop for your entire code, you could try using "iterative robot". You can do this by clicking the "new project" icon in the top left-ish area (it looks like a cardboard box). Then click "FRC Java" entry in the left pane, and the "IterativeRobotTemplateProject" in the right hand pane. Click "Next". The next step should have 5 text fields you can edit. I recommend editing the top, which is the Project Name. I leave the rest alone. Click finish.

It's pretty much the same thing as using the simple robot project, and a while loop, however with iterative robot, your "RobotTemplate" class is looped at a speed which is controlled by the robot. It loops at about 20 times per second if i remember correctly.

This is what robot template should look like:
Code:
/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2008. All Rights Reserved.                             */
/* Open Source Software - may be modified and shared by FRC teams. The code   */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project.                                                               */
/*----------------------------------------------------------------------------*/

package edu.wpi.first.wpilibj.templates;


import edu.wpi.first.wpilibj.IterativeRobot;

/**
 * The VM is configured to automatically run this class, and to call the
 * functions corresponding to each mode, as described in the IterativeRobot
 * documentation. If you change the name of this class or the package after
 * creating this project, you must also update the manifest file in the resource
 * directory.
 */
public class RobotTemplate extends IterativeRobot {
    /**
     * This function is run when the robot is first started up and should be
     * used for any initialization code.
     */
    public void robotInit() {

    }

    /**
     * This function is called periodically during autonomous
     */
    public void autonomousPeriodic() {

    }

    /**
     * This function is called periodically during operator control
     */
    public void teleopPeriodic() {
        
    }
    
}
At this point I would make separate classes for your teleoperated, and your autonomous code, and call them under the "teleopPeriodic()" and the "autonomousPeriodic()" methods respectively.

Hope this helps!
Reply With Quote
 


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 11:41.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi