OCCRA
Go to Post But FIRST isn't FRC anymore. We need to make way for FTC and FLL. - Tetraman [more]
Home
Go Back   Chief Delphi > Technical > Programming > WindRiver C++
CD-Events   CD-Media   CD-Spy   FRC-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
  #1   Spotlight this post!  
Unread 02-15-2012, 02:10 PM
DjScribbles DjScribbles is offline
Programming Mentor
AKA: Joe S
FRC #2474 (Team Excel)
Team Role: Mentor
 
Join Date: Oct 2011
Rookie Year: 2012
Location: Niles MI
Posts: 284
DjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to beholdDjScribbles is a splendid one to behold
Tasks based programming questions

So I feel like our teams teleop code is in a pretty good place as of last night, and we're getting started with autonomous (and the kinect ). But I'm also a bit curious if I should consider shuffling some routines into tasks.

Here's my current teleop code:
Code:
void TeleopPeriodic(void)
{
    // increment the number of teleop periodic loops completed
    m_telePeriodicLoops++;
    
    if (!BUTTON_CAMERA_ALIGN_SHOT_BUTTON())
    {
        anglesComputed = false;
        myRobot.TankDrive(stickLeftDrive,stickRightDrive);
        //myRobot.SetSafetyEnabled(true);
        myRobot.SetSafetyEnabled(false);
        testCount = 0;
    }
    CameraInitialize();
    AxisCamera &camera = AxisCamera::GetInstance("10.24.74.11");
    
    
    ManageAppendages();
    ManageElevator();
    ManageCatapult();
        
    if (camera.IsFreshImage())
    {
        ColorImage *colorImage = new ColorImage(IMAQ_IMAGE_HSL);
        camera.GetImage(colorImage);
        if (BUTTON_CAMERA_ALIGN_SHOT_BUTTON() && (anglesComputed == false))
        {
            DetermineTargetPosition(colorImage);
        }
        delete colorImage;
    }
}

void TeleopContinuous(void)
{
    if ((BUTTON_CAMERA_ALIGN_SHOT_BUTTON()) &&
    (anglesComputed == true))
    {
        RotateToTarget();
    }
}
My other question is do any of the WPILib constructs, like Jaguar, Joystick, Gyro, etc play nice when shared between tasks, or do I need to set things up with semaphores and protect them (semaphoreDriverStick.get) OR will the inards of the WPILib choke if I try to use these attributes outside of the main task (implying that I will need to get values and put them into a seperate variable so I can protect them)?


Unrelated question: How often is periodic? Is it called at a set rate, or is it only when control packets are recieved from the DS (which would really be semi-periodic)?

Thanks
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 01:15 AM.

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


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