Giter VIP home page Giter VIP logo

stuylib's Introduction

(Stuylib Logo)

Jitpack Website Build


What is StuyLib?

StuyLib is an FRC library / toolkit which includes many different utilities for programming. It includes things like a Gamepad Library, a Limelight Library, a Digitial Filter / Streams Library, and many other utilities relating to math and programming.

Awards

How do I use StuyLib?

Setting up StuyLib

Instructions from JitPack.io

Step 0. This is done by default for robot projects, but if your doing a local project you must remember to include this at the top

plugins {
    id "java"
    
    // You can use different versions of GradleRIO between your robot
    // code and Stuylib as long as the updates don't break anything
    id "edu.wpi.first.GradleRIO" version "2020.2.2"
}

Step 1. Add the JitPack repository to your build.gradle

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}
  • Step 2. Add the dependency to build.gradle

Jitpack Website

dependencies {
    // check tag above for most recent version
    compile 'com.github.StuyPulse:StuyLib:VERSION'
}

Other Dependencies

If you want the NetworkTable classes to work on something other than the robot, then you need to include other dependencies.

If you are using network tables anywhere else than the robot, ie. on a laptop, you will need to include the jar files in the ./lib folder. For example, when using NetKeyboard, you need to run a program to send the keyboard input, here is the program. This program uses these jar files to send network table data to the robot. It is otherwise pretty rare that you would need to use these

Criteria for Code Contribution

When contributing code, as always, make a branch and a pull request.

All code MUST be commented, and no single class should be too complicated.

At the top of each class, give a brief description of the class, along with an author tag which contains an email just in case anybody has any questions on how to use it.

Star History

Star History Chart

stuylib's People

Contributors

anivanchen avatar beng49 avatar boyarsky avatar cire694 avatar creativepenguin avatar daflamingfox avatar iwei20 avatar kevincai319 avatar rmui1 avatar sam-belliveau avatar selym3 avatar vincentw921 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stuylib's Issues

Implement SensorHelper.java

The SensorHelper class will act as a superclass for any type of sensor. At the least, all sensor wrapper classes (Gyro, Encoder...) need to accomplish the following:

  • Send data automatically to DashboardUpdater, so that it can be packed & pushed to the Dashboard
  • Implement a primary get() method, which conveys the most wanted information from the sensor in the most desired format

Specific sensor types will have their own unique methods, like the Encoder class, which will have a getSpeed() that is not inherited from SensorHelper.

Implement DashboardUpdater.java

The DashboardUpdater class needs to collect information, organize and pack it into clusters, and send it to the LV Dashboard. We need to define our data structure format so that it accounts for a maximum amount of information to be sent to the Dashboard.
See Class Specs - DashboardUpdater for more info.

Implement XEncoder.java

Needs to extend SensorHelper, essentially wraps WPIlibj functions but also pushes data to the dashboard.

Make a fully functional multi-tabbed dashboard for Michael1

Building off of the existing concept in stuylib-dashboard, make a Dashboard that would suit Michael1's existing features. This is also an opportunity to think about a few additional features you'd like on Michael1 for the interest meeting demo, like more sensors. However, be sure to not get carried away with this. Make a wiki page that lists existing Michael1 features (e.g. servo-operated flip thing on front, in the Ricci Apparatus), and additional features that would be nice (e.g. an encoder) for the interest meeting.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.