Good things and bad things about PROS I’d like to hear them all. Especially why you personally might’ve chose it over VCS or especially Vexcode which is very appealing as it is much more like a coding environment than VCS.
I’ve personally seen but haven’t looked into that PROS doesn’t have a native API for the brain screen, is this true?
I have chosen PROS as my programming IDE because the community behind PROS is passionate about what they do and are willing to help when there is an issue. Also I really like the Atom IDE and a lot of the features Atom has like integrate Git support. Also I really like how I can use PROS in a terminal . You are correct that PROS doesn’t have a native API for the brain screen but I have spent the last few weeks using the LVGL library. I was frustrated at first about the lack of documentation but after working with it I really like the LVGL library. The last three reasons I chose PROS is that it just feels more professional, it has a huge head start on VC from a bug point of view and finally I really like all of it being open source. If vex was as open as the PROS team was it would have been a much harder decision for me to chose between VC and PROS. By no means am I bashing Vex I think the work they have been doing with VC is great I just wish that VC came out last year so it could be at a more professional state.
These are just my two cents,
1069B - Argonauts
While things have changed a bit since I wrote this (mainly updates to improve PROS, and the release of VEXcode), this is still relevant as to why I think PROS is way better than all the other softwares.
If you have no experience coding, VCS is good. However if you do understand even a little bit I recommemd PROS much more. It’s a more professional IDE that allows you to accomplish much more to make your code as efficient as can be. It’s also open source and frequently improved which I like. It’s just so much smoother and nicer, based on my preferences
I wasn’t the programmer for our team, but for our whole season we never so touched VCS, and stuck with PROS for v5 all the way. However, they complained almost the whole time about things like the terminal and other things. The Git feature helped us update code across several computers.
One thing I do remember some teams mentioning was that if you were using a Vision Sensor, Vex Coding Studio handled it better than PROS (it has to do with taking snapshots with it to track objects). Some teams used VCS over PROS just because it could work with the vision sensor a lot better.
I understand what you mean, there were some issues, but I think by now PROS has good vision support.
There was never ever in the entire season a good reason to use VCS, as RMS has had as good if not better support for vision.
Now that there is VEXCode, that is even less of a reason for VCS.
Anyways, I am pretty sure vision works fine for PROS now.
The main issue is that I wouldn’t trust the vex accelerometer to tell me anything other than which direction is down. I can calculate if a robot is tipping or not, and immediately back off of it is, but like not much else.
Its not just a better option because of it’s earlier release and a more polished and experienced product, its a better option because of the things it can do.
PROS has so many features that many people seem to ignore.
No other software gives the power, features, and customization that PROS has, and it comes with many useful utilities and systems.
If you are somewhat experienced with programming, PROS seems a no-brainer to me.
Will there be debugger support in any of the platforms going forward? Although I was not a huge fan of RobotC, the debugger and data collection capabilities are sorely missed.
There is a datalogging project being developed for pros called JINX.
However, progress is slow, and it might take some time to be released.
Personally, I have developed some solutions for my robot.
I have made LVGL graphs, dials, and pages, I have used terminal output, I have made a utility that can store values in a CSV onto the SD Card for graphing on the computer.
RobotC was extremely nice, and it is unlikely there will be something equivalent (you won’t be able to just manipulate variables without setting up a process first), but it is possible to get by with tools available.
Edit: I can probably provide one of these utilities if it would be useful =)
Nice…Ideally I would like to be able to open a serial port and use a serial to BTLE adapter to stream telemetry to a phone . We were able to do that with the pre-V5 cortex. Was actually kind of cool.
You probably can with v5.
It is possible to open the v5 smart ports as serial connections, and it is also possible to use the v5 usb as a serial output.
I use PROS and it’s very nice but there are some very annoying issues…
Stuff that annoys me
My favorite is: on my team’s laptop if I start uploading and unplug the wire during the upload I get an error message; the problem is that the close button is off screen, you can’t scroll, or just click enter. What I have to do is rotate the screen so that it is big enough to display the whole error message (rip if you have this issue and your screen is still too small), and then since most of the time the touch screen doesn’t work, I need to move the mouse (horizontal moves it vertically and vertical moves it horizontally) to the close button. Also I am not sure but I think this is not an issue directly with PROS.
Another one is the build and the upload buttons. The build buttons builds it and then just hides the results. The upload doesn’t have an option for the program slot. All these issues aren’t present if you add a terminal panel and build/upload using that (Including the one with the error message beacuse it just displays it in the terminal).
Also I don’t like how you PROS has to have all those files in the project. They could easily store them somewhere else and only have the src files.
Also apparently when implementing LVGL PROS removed most of the fonts to make the upload size smaller.
Another problem with LVGL is for some reason the first element (specifically a button on a page) cannot be move down. It can be solve by first adding an invisible element. Does anyone know why this happens and/or is just an issue with my code?
This is probably just be an issue with my team’s old laptop but sometimes intellisense stops working until I restart PROS.
All that aside PROS is a very good option. All the things I have listed are minor issues/bugs.
PROS uses C++, it has LVGL, there is very good intellisense, haven’t used it but PROS has hot/cold linking for uploading through the controller, and features that come with atom.
Good feedback. However, each of these issues have a solution.
Solutions
1.Building and uploading process
I don’t like using the buttons. They are slow, and the experience with the warnings and such is not optimal. It creates a new terminal tab each time you click, and the errors are sometimes not easy to read.
However, the buttons are meant for beginners, and I rarely use them. It is so much easier to open a terminal, type prosv5 mut, and you are done. The error is in one place, and when you want to redownload, you go Ctr-C (abort terminal), Up key, and Enter, and you are done. It is much faster too.
I use the atom package platformio-ide-terminal and simple cmd.
Pro tip: Navigate to a folder in Explorer, then type cmd in the path bar. It will open cmd with the proper directory. You can also run any other command like git.
Last thing, you can control the linger time of the compile warnings so it does not disappear by going into settings->Packages->Terminal Tab Plus
2.Source files
I really like having those. It is not a hassle to manage, and it provides a good reference for available functions. It is just the way it is supposed to work. Header files are very important. It also gives the linter information.
3.LVGL
Sure, they compiled lvgl into pros without some fonts, but I think we can agree it was for a good reason. However, nothing is stopping you from simply going to the lvgl github and copying the fonts into your project, you can even create your own. This is also a thing https://github.com/HotelCalifornia/libfonts
Your issue with the first lvgl element is an issue with your code, it has not happened to other people. You sure you are creating a new object with the screen as the parent?
4.linter (intellisense)
Yeah, the linter sometimes has trouble keeping up, but it’s not pros fault. They are buggy and only meant to predict your errors anyways.