Hello I am currently working on project, which involves automated deployment and launch of everchanging programs.
Ev3's are scattered around the different schools. I wrote a simple script which can download a file, and then send it to ev3 via wifi.
But i am currently stuck on how to get .rbf and .via files from Labview.
I know i can deploy .vi using target to ev3, and then download these files back to PC, but i cannot script it.
Is there a way to compile .vi to file?
Solved! Go to Solution.
In direct mode, you will find a VI in the palette I/O >> Direct Only >> Compile and Run NXT/EV3 code. This VI will generate the .rbf and .via files and download them to the EV3, and then run the program. Is this what you are looking for?
I know about this functionality, but it is not what i am looking for.
I need a way to get this files without physical acces to ev3. For example: I got the vi i want to run on several different robots. And to upload and run it on all of them, it will take me half a day to simply walk pass them. But all of them are connected to wifi networks, and I can get access to them, through local servers. And i can upload code and run it. But is there a way to get the compiled files which ev3 can understand?
I will contact a developer more familiar with the compiler and get back to you tomorrow with whether what you're trying to do is possible.
How is it going with the developers?
I've consulted with a friend of mine, and he suggest me to emulate ev3a s a network application.
By it i mean to create an application, which mimics how ev3 advertises itself, and then opens up an TCP connection. Should i through myself on it, or there is a way to do it more optimal?
Sorry it's taken so long to respond to you. If I understood what you're doing, your goal is to generate .via files on your machine without being connected to any EV3s, and then download the code on the EV3s over a wifi network. I think emulating an EV3 would work, but I think I have a way that requires less effort.
1. Every rbf file generated by LabVIEW is exactly the same, so all you need to do there is download the file with the correct name.
2. The trickier part is downloading the .via file
a. If you have an extra EV3, you can always have one EV3 connected to the computer, and use that to generate files.
b. Or, I think you can do it with just the PC. I've attached some files. Unzip at <LabVIEW>/vi.lib/NXT/LegoClasses, so the VIA folder is directly under LegoClasses and the VIAManager is under LegoClasses/BrickManagers. This will create a new device in your list of connected devices called VIA [Bluetooth]. If you target a VI to the VIA device, it will generate a VIA file and save at Documents\LabVIEW Data\LVVIAGenerated. However, if you want to use any IO functions you will have to add a case to the conditional disable structure in the VI. You have to add the condition "URAPI == VIA" to the case that currently says "URAPI == EV3"
I tried your solution word for word, but it seems, that the VIManager.lvclass is missing scanforbricks.vi, tried opening VIA.lvclass same again - missing vis.
Maybe you forgot to add them? Or I am missing something?
I am using LV 2013 btw.
I"ve changed almost all I/O functions to contain URAPI==VIA, all seems working fine, except for all wait functions.
The problem is that all of them contain "Feed TETRIX watchdog" which contains TETRIX DC Motors Registry, which is password locked, and i guess theres condition disable strcuture with the same arguments. I cannot fix them. Question is: Can i just delete all the tetrix watchdogs related vi's?
We are not planning on using tetrix motors, wont it affect other functionality?
Thanks in advance