Java to Labview, using "if else" statements and pressing buttons

I’m originally a java programmer, but I’ve taken on Labview since this past last year. I’m trying to make a code that will assign a value of 0 when a button ( button 1) is pressed and then change that value into a 1. When the button is then pressed again the value is changed back into a 0.

This code is for a claw that will open and close. Any advice, help, or screenshots?

int x=reader.nextInt(); // takes value of pressing the claw button
while (y==1) //the robot is turned on
{
if(x==-1)
{
claw=0; //open position
}
else(x==0)
{
claw=1; //close position
}

x=reader.nextInt(); //checks the next value of the claw button
y=OnOrOff.nextInt() //checks if robot is on or off
}

Here’s a button toggle example.

As the example stands the green output alternates between a 1 or 0. You can eliminate the inside Case statement if you don’t put anything inside it.
If you want a real number output use “Boolean To (0,1)” located on the boolean palette.

If the claw is solenoid operated you can just stick the activate inside the toggle where indicated and use this in Teleop.
A motor operated claw would require a longer cycle, but could be used, as is, inside Periodic Tasks or Autonomous Independent, not in Teleop.

x=reader.nextInt();
claw = !x;

There you go, I optimized it.

I’m assuming you know about case structures.

To make an else if statement, you just go to the false case of the case structure and put another case structure inside that.

There are also other ways to do it, like taking all your inputs and making them into a number (with a boolean array to number function, if you’re interested) and wiring that one number to the structure. However, it’s easiest (although ugliest) to just nest the case structures.

I attached an optimized program for you.

Program Example.JPG


Program Example.JPG

Oh wow, thanks! I’ve tested both of them, but I need to discuss with my driver and team which they would prefer.

Much appreciated :smiley:

LabVIEW can certainly make something simple look really complex. I’d be curious to know how long it took to draw that.

Simple, easy to read, and can be written in a few seconds. Even when you count the variable declaration.

I just redrew it in just under a minute.

x=reader.nextInt();
claw = !x;.

Simple, easy to read, and can be written in a few seconds. Even when you count the variable declaration.

Alas, it doesn’t do anything like what the original poster wants.