View Single Post
  #3   Spotlight this post!  
Unread 01-02-2010, 00:14
buddyb's Avatar
buddyb buddyb is offline
Registered User
FRC #1885 (ILITE)
Team Role: Programmer
 
Join Date: Dec 2009
Rookie Year: 2008
Location: Haymarket, VA
Posts: 65
buddyb has a spectacular aura aboutbuddyb has a spectacular aura aboutbuddyb has a spectacular aura about
Re: [FTC]: Java in RobotC for TeleOp

Quote:
Originally Posted by rzoeller View Post
The problem is the button commands you are using. "joystick.joy1_Buttons" doesn't work like Joy1Btn, where it outputs the actual button number. Instead, it outputs numbers to the power of 2, like this:

button 1 = 1
button 2 = 2
button 3 = 4
button 4 = 8
button 5 = 16
button 6 = 32
etc...

This is useful to allow for commands where multiple buttons are pressed at once, but can be a pain otherwise. In your script, button 3 should activate case 4, with button 4 activating case 8. Case 3 currently displays when 1 and 2 are pressed togethor, and case 4 displays when button 3 is pressed.
^^Truth.

In addition, the joy1_buttons int adds the numbers together if multiple buttons are pressed at once (ex if button 3 (button 3 is 4) and button 4 (button 4 is 8) were pressed at the same time, the result in joy1_buttons would be 12).

Also, your code would only check to see if a single button is pressed each time the loop runs, because you're using a single switch statement. So, if you had buttons 3 and 4 pressed, the program would only see button 3 as pressed.

You may want to try a loop that checks each button, something like...
Code:
for(int i=1;i<=12;i++) {
  if(joy1Btn(i)) {
    switch(i) {
      case 1: /* Button 1 code */ break;
      //...
    }
  if(joy2Btn(i)) {
    switch(i) {
      case 1: /* Button 1 code */ break;
      //...
    }
}
Good job, though. ^^
__________________
FRC - Team 1885 - Programmer.

Last edited by buddyb : 01-02-2010 at 00:19. Reason: Elaboration.
Reply With Quote