View Single Post
  #2   Spotlight this post!  
Unread 24-01-2005, 15:58
Tom Bottiglieri Tom Bottiglieri is offline
Registered User
FRC #0254 (The Cheesy Poofs)
Team Role: Engineer
 
Join Date: Jan 2004
Rookie Year: 2003
Location: San Francisco, CA
Posts: 3,187
Tom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond repute
Re: _mode flag summary??

Quote:
Originally Posted by gnormhurst
I searched, but I did not find...

Can someone definitively describe the various "_mode" flags in the code, such as autonomous_mode and competition_mode (now called disabled_mode this year, to better reflect the polarity of the bit!) and any similar flags? See below:
Code:
/*
 *-----------------------------------------------------------------------------------------------------
 *---------- Aliases for User Modes  ------------------------------------------------------------------
 *-----------------------------------------------------------------------------------------------------
 * These bits tell you what mode your robot is currently in.
 *     1 = in <X> mode; 0 = not in <X> mode
 */

#define user_display_mode   rxdata.rc_mode_byte.mode.user_display
#define autonomous_mode     rxdata.rc_mode_byte.mode.autonomous
#define disabled_mode       rxdata.rc_mode_byte.mode.disabled

I am particularly interested in how they are controlled by the Match Computer. I have a dongle, but that doesn't tell me under what circumstances which flag is in what state.

This year is especially interesting. For example:

1. What happens when the human player steps off the switch pad? Do any flags indicate this?

2. How do I make a timer that measures match time, including the time the human player is off the pad? Last year I simply had a counter in Default_Code(), but that ran all the time, even before the match started.

3. There is a dead time between autonomous and manual mode during each match for the officials to award tetras, etc. How can my software know when that is the state?

4. How can I code a "software reset", so that all the "time counters" can be reset without having to press the "reset" button on the RC? This is especially important for the second run of practice matches.



If someone could describe an example match and how it is reflected in the _mode bits, that would be really helpful.


Thanks all!
1. Robots are in disabled mode when the human is off the pad, therefore the disabled flag is raised.

2. Use an onboard timer that starts couting when auto mode starts. Increment one variable every timer click (or every 10 timer clicks, depending on the resolution). Then, increment one other variable only when the robot is in auto mode or user mode. Take the difference to know how much time the robot was in disabled mode.

3. Look for when the mode flag changes from auto to disabled, then call whatever.

4. map a button on the joystick to a function that resets your timer variables, stops the hardware timer, then retarts the process.

Hope this helps.