So I’ve used LabVIEW a bit. (Is that even what it is called? The LEGO Mindstorms programming tool.) It’s not that great for me. It is unresponsive, I have a hard time getting an overview, the program doesn’t seem to allow me to iterate on my code as quickly as I’d like and I feel like I can’t do what I want. I have an idea of what I want to do but I can’t figure out how to get there with LabVIEW. So I started looking into other options.
I had already ruled out existing homebrew tools (the ones I could find at least) so the next option is to do my own tool.
Initially I figured I could do a graphical tool, similar to LabVIEW, but nicer to use. (I fully understand if you laugh at this idea, it’s not the best idea I’ve ever had) So I started looking into the ev3p file format. I found out that it was basically just a bunch of zipped XML files, and each XML file described a graph in my program. I found the XML nodes that described the layout and parameters, the nodes that described the wires that goes between blocks, and I found the XML that described my own blocks.
I also dug into the app content of LabVIEW to find the definitions of the built-in blocks. I.e. what parameters they accept, their types and ranges, etc.
After a while of digging around I understood that yes, I could do my own tool that generate ev3p-files identical to what LabVIEW generates, but it all seemed to cumbersome, and I was concerned I would need to understand each block to be sure it worked fine. Also, if I were to generate my own ev3p-files I would still need to load them into LabVIEW and use LabVIEW to download the program to the device.
But while digging around in the app data for LabVIEW I found something much more interesting!