Skip to content
catron edited this page Sep 13, 2010 · 8 revisions

Hello and thank you for your interest in CBCJVM! CBCJVM has a slew of features that will help maximize your time — which is of great importance in Botball.

Features

The Flexibility and Power of CBCJVM 10.2

CBCJVM inherits all the features of the 10.2 release. This means you get everything such as the great freedom, eclipse integration (optional), and direct framebuffer drawing support, not to mention access to all of JavaSE, that 10.2 offered. What’s more is that most of the API is backwards compatible.

Bugfixes

After a month of having a public release, we have discovered and patched a large number of bugs, ensuring that your transition to CBCJVM is as smooth as possible. We even have a few work-arounds for the CBC’s own bugs, like the infamous bemf motor bug. (Thanks Matt!) While new bugs are found all the time, we are always here to patch things up, and we will never try to cover up any known bugs.

Improved Create Support, with Create Scripts

The create now has proper support in CBCJVM’s ever growing library. Create Scripts allow the create to run without a CBC, or have improved accuracy over the regular Create commands with a CBC. While still experimental, CBCJVM now provides the only CBC Create Script solution available today. (You must use a XBC otherwise.)

Improvements to the Movement/Navigation Libraries

The movement library has had a bunch of improvements to accuracy, and many cleanups to the API. It also contains experimental support for motor easing based on customizable easing equations and a new easing engine. (API not yet finalized, still undocumented) However this experimental feature does not affect the existing API, ensuring perfect backwards compatibility.

Configurators

Using configurators easily allows you to create menu systems for your robot. An example configurator menu:

Press A Button to Run Robot.
Press B Button to Wait for Light.
Press Black Button to Raise Arm.

Configurators also allow you to use any digital sensor or button as possible input mechanisms, giving you a plethora of options for interacting with your robot.

Servos as Motors

The ServoMotor class in cbccore.motor allows you to move a servo smoothly over a given amount of milliseconds. This smooth movement is essential for delicate operations, such as picking something up without jerking it out of your grip.

LOLCode support

lololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololololol LOLCode information. Does not yet have support for access to java libraries, mainly a proof-of-concept showing how simple it is to use any language that can work on top of the JVM with CBCJVM.

Reliability and Maturity

In it’s second release, CBCJVM is proving itself to be just as reliable and actively supported as GCC-C (KISS-C) on the CBC.

A Plan for the Future

Our seasons will end soon, but that does not mean CBCJVM will cease development. Our team is focused to continue actively developing the project, and we look forward to seeing you in 10.4!

How You Can Help

Impressed with our feature set? You can help!
How to Help Out

Credits

Braden McDorman – Project Lead and Founder, Programmer.
Benjamin Woodruff – Programmer, Documenter. He was the inspiration behind the move to CBCJVM, showing me people actually were using my project.
Jonathan Frias – Maven build system support throughout the project.
Tommy MacWilliam – Contributed the Create JNI Wrapper. Big Thanks for the completion of such a tedious task!

Clone this wiki locally