My team is trying to write our code for the first time. Our college teaches c++ first to new CS students, so we want to use plain c++ to code, so any new members can code without learning new languages/syntax, however all the vex coding tutorials I can find are for Vex c++. Are there any good tutorials on how to code for vex in c++?
Either
https://help.vexcodingstudio.com/ For VCS
or
PROS: Documentation Home — PROS for V5 3.8.0 documentation For PROS v5
PROS: Documentation Home — PROS for Cortex 2.12.2 documentation For PROS Cortex
Thanks Nerdom.
Looking at these links though, the one from vex seems to be for vex c++, and the PROS still uses a library added by PROS, rather than programming everything yourself. If this is all there is, my team is fine using these, however we were hoping there was something to help us learn to code the robot using just the c++ standard libraries.
Those are still useful though, thanks again.
Do you happen to know of any for RMS?
I’m a little confused by the distinction you’re making. PROS C++, VEX C++, and RMS C++ all support the C++ standard library*.
Yes, all three solutions are effectively libraries, but the libraries we provide are just to facilitate interacting with the hardware.
Perhaps if you could elaborate more on what you mean by
We might be able to offer more insight.
*note that (as far as I know) PROS is the only one of those three solutions that supports C++17
VEX is fairly closed on how to interface with their hardware from what I can tell. I’d see if you can find the PROS github somewhere for starters if you’d like to see how they did it.
Hotel, I’m not looking for software that supports the standard library, I’m looking for a tutorial on how to code a vex robot using only the standard library.
The tutorials and help pages linked above use vex/pros libraries, and their sample code all uses these libraries, with no sample code (that I’ve seen) that only uses the standard libraries.
Nerdom, that might help if it’s not too much trouble.
Working on it, but I wouldn’t expect a complete set of C++ curriculum activities until “later.” With educational conferences, VEX Worlds, planned training (and even the occasional vacation), Spring is the busiest time of year at Robot Mesh.
You can learn all you need to know about basic VEX robot programming by going through our Python or Blockly curriculum. Once you’ve learned the concepts, going to another language is just syntax. The professional software engineers I’ve worked with over the last cough cough years aren’t worried about learning new languages. It’s what they do for a living.
Yeah, that’s what’s confusing me. You cannot write code for a VEX robot using only the standard library. The standard library has no knowledge of the specific hardware interactions involved.
Without some interface acting as a communication layer between your code and the devices, you wouldn’t be able to effectively program a VEX robot at all.
Oh. Then is there a way to download the pros or vex library so that we can use different development environments?
Thanks for the help
Since I’m a PROS developer, I’ll answer your question from the PROS perspective.
PROS’s main driver is a Command Line Interface (CLI), which effectively means that you can use any editor you wish with it. We maintain a plugin for the Atom text editor, but you are by no means locked into using it if you don’t want to.
To install the CLI, check out the getting started guides on our website for whatever operating system(s) you use.
If you have any questions regarding the use of the CLI, please feel free to open a thread in the #edr-technical-support:pros-support category.
PROS editor is just a modified ATOM editor. it is possible (edit) to separate the two. What environment do you plan on using? (Retraction: info was for a different version of MVS without support for plugins)
One more note: you’d need to create your own upload tool.
To piggy back on Hotel’s explanation, there is also a command line tool for Robot Mesh Studio (RMBuild) that can be used in a similar manner.
We had been hoping on using visual studio, as it is what our college requires in 100 level programming classes. Our idea was to get our development setup as close to what freshmen will learn as possible, to make getting involved easier.
It’s sounding like what my team wants isn’t possible, what would be the recommended setup for programming?
I’d reccommmend either default PROS or do your own ATOM plugin. That seems like the easiest and most full featured.
Note: it is probably possible to build a plugin for MVS, but IMO it is not worth it (as a diehard atom user). If you really want MVS, you can try if you have tons of time to get it working properly.
If we went with default PROS v5, does that come with everything needed to compile the code and write it to the bot or will we need extra software for that?
It comes with everything, just hit the right button!
Thanks! I’ll look into it and see if I can get it working.
Np, if you run into trouble definitely use the #edr-technical-support PROS section. There are some really knowledgeable people there.
This couldn’t be farther from the truth.
PROS, at its core, is just a series of C/C++ libraries, a set of provisions for compiling and uploading code, and a kernel.
The PROS Editor is just a repackaged Atom with plugins. And it’s trivial to use PROS without the PROS Editor or Atom at all; in fact, even installing the PROS Editor in the first place is an option you get when installing PROS.
All you need to do to integrate PROS with Visual Studio is telling Visual Studio the right PROS CLI commands to execute for compiling, uploading, etc. The easiest way to do this is through Tools
> External Tools
. Other editors, including even Notepad++, will have similar facilities for running terminal commands directly from the editor.
Side note:
If you are looking for a pure C++ experience, you will probably prefer a more traditional IDE like Visual Studio or CLion over Atom, especially with their free availability for community/education use.
And, if you intend to do programming in a career, you will probably at some point need to be able to set up your own development environment in a traditional IDE like Visual Studio or CLion.