VEXcode V5 Text Preview

Besides the obvious of copying files from one project to another, is there a way to share files between projects? For example, maybe we would want to have a “driveForward” function that is shared between a DriverCompetition project and a ProgrammingSkills project that would be used during autonomous in both.

2 Likes

Like linking in a library… but even source would be good :slight_smile:

Well, yes, but you have to understand how the build system works, it’s not an automatic feature.

I started writing out a full explanation but it should probably be a separate topic we discuss outside this thread. Later we will probably add a template to create a static library that can then be used by other projects, but that’s probably something for the summer.

4 Likes

In the future, can some kind of communication actually happen with the community regarding these things? It’s presumably been 6 months at least since VC started development and we have had exactly zero information that this was happening until now.

I wholeheartedly agree.

Teams got no word of any communication. I don’t think that’s a good standard to set for any future engineer.

4 Likes

I played around with this new software for awhile and I have to say THANK YOU. This is the software that I have been looking forward to. I do have a few questions.

  1. Does wireless downloading use a similar upload procedure as PROs hot/cold linking? and if it doesn’t is this planned?

  2. I used VCS for the “Turning Point” season and started looking at switching to PROs and a few of the reasons were wireless downloading, PID control, overall greater control of V5 element. Will a PROs like control over the PID loops be added to the SDK or does it already exist?

  3. Lastly when/is it possible for greater control over the controller’s screen? I would love to have the same control over the controller screen as the brain screen. Is this something planned or even possible? Also are there plans to include similar techniques as the PROs LVGL picture converter?

Once again this looks like a really good start for a higher level IDE for programmers and I can’t wait to see were this goes.

1069B - Argonauts

1 Like

The SDK that we use for VEXcode and VCS is different from that used by our partner developers. Our “cold” image (really the stdc++ library) is already part of vexos, for this reason the VEXcode binary that is downloaded is usually already very small and we don’t feel we need the complexity of using the technique that’s been implemented by PROS at this time. vexos 1.0.6 should improve wireless download reliability for all development environments and also enables the use of stdout via the controller for wireless debug, this is already implemented in VEXcode.

It’s part of the SDK but we have not exposed it as part of a C++ class. I’m sure that will be added before next season.

This is a limitation of the controller firmware and available communications bandwidth to the v5 brain, I’m not expecting any significant changes to this in the near future.

7 Likes

The wireless download feature is nice. Will be easy for the students to figure out on their own.

Convenient and quick.

Wireless_Download

2 Likes

and will be more reliable with the vexos 1.0.6 release.

4 Likes

Whats the timeline for Python and Javascript?

Based on the OP, VEXcode is not intended to have Python or JavaScript support.

If you want support for Python and/or JS, take a look at Robot Mesh Studio, which already has both.

Haven’t downloaded it yet, but is there ctrl+s this time?

4 Likes

yes. and many other shortcuts.

6 Likes

I don’t know if this is a bug or not, but every time I hit build, it closes all the other files except the main file.

I really love VEXcode. Thank you guys so much.

I don’t think we have seen that before.
Do you mean all open tabs close ? or do you mean it saves all files except the main file ? Any additional details you can give us ? (perhaps send me the project privately)

1 Like

This isn’t a real problem, since it doessn’t affect building, but in mkrules.mk:12, it will try to mkdir build/src for every .cpp file. This fails and outputs a bunch of errors into the Output. Is these a way to modify the mkrules file to prevent it from attempting to create the directory if it is already there?

Thanks. we will try and get that fix into preview 2, it was an oversight on my part.

2 Likes

We have a new channel here for further bug reporting and support questions.

2 Likes

Thank you for your response, and I look forward to continued dialogue and transparency.

Looking back on my post, I realize I was quite negative and expressed none of the positive feelings I have towards VC, so I’ll share them now.

  1. It appears that the dev team truly has listened to community feedback and has pretty much given us what we asked for, and I commend them on that point.
  2. I think that VC does a good job of justifying its existence. Because it integrates the firmware updater and vision utility into itself it helps simplify the programming experience and is a great stepping stone for those trying to climb the programming ladder.
  3. Similar to the above, this seems like a proper replacement for RobotC, with quite a few features added.
  4. I love the choice to build on something solid like Monaco, and I hope that this will make the development process much easier/faster.
  5. DARK THEME!
  6. The autocomplete looks great.
  7. A linter!

I think that the VC team has done a great job so far and that as long as development continues steadily it will be a solid programming platform for the competition.

5 Likes

Maybe, just maybe, if you started with an SDK-only approach (a set of headers, libraries and communication utilities), perhaps publishing the communication protocol right off the bat, there will be:

  1. Something usable out of the box with pretty much any C++ IDE worth its salt (About every C++ IDE I have worked with does integrate with custom, makefile based projects)
  2. Opportunity and motivation for the students to learn “real” IDEs, the same IDEs they may use one day for a job, or advanced class at school (“Look Ma, I am programming a VEX robot!”, “Look Ma, I am programming an industrial robot!”, “Look Ma, I am developing this autonomous car controller! In the same IDE as I was playing with robots few years ago.”)
  3. Easy portability to sane platforms (like Linux, sorry Chromebooks)
  4. Architecture that lends itself well to integration with existing IDEs, thus easy upgrade path to an “official IDE” like this VEXCode.
  5. Option to develop a full blown IDE on your own if still deemed really necessary (hint: It is much easier to downscale, simplify and clean up existing open source IDEs than to write your own. Especially when you get into complex language support features)
  6. Possibility for 3rd parties to provide better integration to their IDEs of choice (I mean random 3rd parties, not few selected under NDA).

But thanks for VEXCode! It’s a great upgrade for a big part of the users!

5 Likes