Home Sylib - A Platform-Agnostic Library for Addrled, Motor Speed Control, and More!
Post
Cancel

Sylib - A Platform-Agnostic Library for Addrled, Motor Speed Control, and More!

Sylib

Sylvie’s C++ Library For V5

image

Features

  • Easy WS2812B Addressable LED control
  • Accurate motor velocity measurements
  • Template for making custom velocity controllers
  • Many kinds of pre-built filters for general use
  • Platform-agnostic, meaning it works with both PROS and VEXcode

Installation

PROS

1) Download the latest version of the Sylib template from the Releases page

2) In the directory where you downloaded the zip archive, run pros c fetch sylib@<version>.zip

3) In your PROS project directory, run pros c apply sylib@<version>

4) In your main.h file, make sure to include sylib/sylib.hpp

5) In /include/sylib/env.hpp make sure that SYLIB_SRC_PRESENT and SYLIB_ENV_VEXCODE are not defined, and that SYLIB_ENV_PROS is. This makes sure that the right headers are included, and that sylib uses the pre-compiled library provided by the template instead of trying to build it from the non-existent source (which would not compile in a PROS environment anyways).

6) In your initialize() function, make sure to include sylib::initialize();

note: Sylib requires PROS kernel 3.7.2 or later to run

VEXcode/VEX Visual Studio Code Extension

1) From the Releases page, download the latest version of the Sylib source code

2) Copy the contents of the include/ directory from the downloaded files into the include/ directory of your project

3) Copy the contents of the src/ directory from the downloaded files into the src/ directory of your project

4) Include sylib/sylib.hpp anywhere relevant, probably including at the top of your main.cpp file

5) In /include/sylib/env.hpp make sure that SYLIB_ENV_PROS is not defined, and that SYLIB_ENV_VEXCODE is. This makes sure that the right headers are included, and that sylib compiles the source code instead of trying to use the non-existent PROS template.

6) In your pre-auton function, make sure to include sylib::initialize();

Acknowledgements

This project would not have been possible without the contributions of

  • Leo Riesenbach
  • Lachlan Davidson
  • James Pearman
  • Griffin Tabor
  • Nick Mertin
  • Andrew Strauss
  • Jamie Maki-Fern
  • Salmon
This post is licensed under CC BY 4.0 by the author.
Contents