|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Id like to be able to get values from our driver station into my code so I can quickly change code through my driver station in Labview. I have tried using the new driver station blocks that we got this year in the update that sends code to the driver station but it won't send values back to the code. Anyone have any ideas on how I can get values from the driver station to the code?
The picture below shows the values I want to use in my code. Last edited by CooneyTech : 13-02-2013 at 11:03. |
|
#2
|
|||
|
|||
|
Re: Driverstation referencing
You've made a number of additional tabs. In order to add the controls to the binding list, duplicate the dashboard code that is attached, but create the constant from your new tab datatype and append the arrays together before binding.
That will be enough to create variables on the robot that you can read from wherever you need them. It would be a good idea to make the variable names unique. having eight Holder controls will likely be confusing. Greg McKaskle |
|
#3
|
|||
|
|||
|
Quote:
|
|
#4
|
|||
|
|||
|
Re: Driverstation referencing
How do I append the arrays?
|
|
#5
|
|||
|
|||
|
Re: Driverstation referencing
I an posting all I have so far so you can look at it. After it's bundled and binded do I reference it in my code through some sort of SD Read?
|
|
#6
|
|||
|
|||
|
Re: Driverstation referencing
The attached image collects references to the controls in Operation and in your tab. It combines them into a single array using the array builder, and those will then be bound to variables of the same name. In order to write this code, you will need to right-click and tell the array builder whether the 2 one dimensional arrays should be built into a longer 1-D array or a 2-D array. It default to 2-D, so right click and tell it to concatenate.
The other code you were writing outside of the loops will only run once. So the D Shifter Invert doesn't do what you probably intended. If it is to be read each iteration of the loop, the terminal needs to be in the loop. I suspect that most of the other terminals won't be used on the dashboard except for display, and simply need to be stacked on the side, where the Slider 1 and Checkboxes are. Greg McKaskle |
|
#7
|
|||
|
|||
|
Re: Driverstation referencing
Ok I put everything where it should be and it should all be binded. When I reference it it my crio code do I side a SD write in the dashboard and a SD read in the crio code?
Last edited by CooneyTech : 14-02-2013 at 12:34. |
|
#8
|
|||
|
|||
|
Re: Driverstation referencing
You can both read and write to the variable on the cRIO. You can both read and write to the variable on the dashboard.
Interactive edits to the value of the control will propagate to the variable. The one case that will not propagate is if you write to a terminal or local of the control and want it to affect the variable. This is to avoid race conditions. Greg McKaskle |
|
#9
|
|||
|
|||
|
Re: Driverstation referencing
Quote:
|
|
#10
|
|||||
|
|||||
|
Re: Driverstation referencing
There isn't one built in that I've found. You'll need to unbundle the cluster and write each element separately, and you can bundle them back together at the other end if you want to. If you get fancy, I think you can use a name hierarchy, adding the cluster name and a slash in front of the element name, and get things to "cluster" together in the variable viewer.
|
|
#11
|
|||
|
|||
|
Re: Driverstation referencing
Thank you Mr. McKaskle and Mr. Anderson for the help. This will make editing code at competition much fast.
|
|
#12
|
|||
|
|||
|
Re: Driverstation referencing
As mentioned, SmartDashboard is very simple and doesn't have clusters. It does have arrays, so if you look at how the motors and joysticks are done, the elements are put into an array of numbers and an array of Booleans and are broken apart when accessed. This trick isn't something you have to do though. If you do it, you may find that converting from array to cluster and back is handy. But you can also do this by dropping and growing the Array Index node and the Build Array node.
Greg McKaskle |
|
#13
|
|||
|
|||
|
Re: Driverstation referencing
I have it so it gets binded, but when I try referencing the values it only gives me zero. Am I doing something wrong?
On the left is teleop on the right is the dashboard reference. |
|
#14
|
|||
|
|||
|
Re: Driverstation referencing
Have you tried to look at the variables tab to see if the writes are working? On the dashboard, you can click to the tab and scroll to see all variables and their current value.
Greg McKaskle |
|
#15
|
|||
|
|||
|
Re: Driverstation referencing
The variables tab works correctly yes but that's getting variables from the code not sending variables to the code. Right?
Last edited by CooneyTech : 16-02-2013 at 17:41. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|