Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ repos:
- id: pretty-format-json
args: [--autofix]
- id: trailing-whitespace
- repo: https://github.com/team5499/pre-commit-hooks
- repo: https://github.com/team5419/pre-commit-hooks
rev: v0.3.2
hooks:
- id: ktlint-wrapper
Expand Down
19 changes: 12 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,19 @@ sudo: required
services:
- docker
script:
- export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo $TRAVIS_PULL_REQUEST_BRANCH; fi)
- docker run -t -d -v $(pwd):/code:rw --name frc-testing-image team5499/frc-testing-image:frc2019; docker exec frc-testing-image /code/gradlew -p /code test jacocoTestReport
- export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH;
else echo $TRAVIS_PULL_REQUEST_BRANCH; fi)
- docker run -t -d -v $(pwd):/code:rw --name frc-testing-image team5419/frc-testing-image;
docker exec frc-testing-image /code/gradlew -p /code test jacocoTestReport
after_success:
- if [ "$BRANCH" == "master" ]; then docker run -t -d -v $(pwd):/code:rw --name frc-testing-image-java8 team5499/frc-testing-image; docker exec frc-testing-image-java8 /code/gradlew -p /code dokkaJavadoc; fi
- if [ "$BRANCH" == "master" ]; then docker exec frc-testing-image /code/gradlew -p /code publishToTeamRepo --username=$USERNAME --password=$PASSWORD --url=$URL; fi
- if [ "$BRANCH" == "master" ]; then docker run -t -d -v $(pwd):/code:rw --name frc-testing-image-java8
team5419/frc-testing-image:version-2018.1.0; docker exec frc-testing-image-java8
/code/gradlew -p /code dokkaJavadoc; fi
- if [ "$BRANCH" == "master" ]; then docker exec frc-testing-image /code/gradlew -p
/code publishToTeamRepo --username=$USERNAME --password=$PASSWORD --url=$URL; fi
- bash <(curl -s https://codecov.io/bash)
env:
global:
- secure: i11zToxl8eKnEHrMyrL17VAk38Mv4o1YAky5b2hg03eSX5qD5q+oFlnCi3WpK8oro0LAinESlTCgIETbnv3qM79RVC+FkfgrUKEitUPvTFS1zkRUlT+dgco3sD7fYZX7IOQ25T3uFIc1F4aXkIGSor/E+5pZU0wmTH0vFoTeyuX9Oo4zGOQi3UmccE3hkzkoKVIhyU+RLUp6aCylMnuLiMbUNDijMNhYqU5Zm+/gN9qmZiHJsst7Vkc+oobnpbdOmZoDNaw53a1D3y0+jlwriQe4Bk/lKMxbWWungpO6KIcV0JLiv/lDmMYX/tnL4xPq6/EecoDNLDWNWNVWcyYjgOpafdjEJ6h/mzvJxUv27bXM57FGzBXA+fy2PT4+tQvkimDeb3Y+YTbohs26cpImRCP148colyjy8aQPWW4BkQieiSZDSEmfhNyDXLXxRfBRx5jj0zSkUtVClabHrFzsJ4lZOqaucRLNKWs7VF0PxE8vFNQHliUhyXZkwrob8xB+lrB0ekI1rrDkCIxzdf5J+r+2bpUuXqv4SiNNVWBgasc7d+ye6UV9el2u6ItRhhVHItFPhnYYFTv3QtZ44mSbjlCU2dRkSPR71cd+Csn3edCjrOwHPd35GgIGrHnIv7/NQetvqtMdfg/+6WMzt3WPkzLgMTEOJY0t1TVvitNV3YA=
- secure: wXy6aDSe9nfd1KjnBBzBG5X4PTIhpVStdvEs5Y/vA8zEWuszf4P2YDzIjf0lKL+K/Ed9GLeaKFdXac1i9VG3mChOxVWQ3kd5Mp5mNm/3iGEQ3OHJ43q9uKJTsSZOuuTHBHfJmLUwxk3Dnz7on3XU0XZKODuIxY0iqEIZ0RFcryIo0VE5glDfAvoqJRkbs56ruBMcZfh3Xx9NdebQN9rglT3w/WEeb7TLgECKkF5ic8wB4YEpEvJm1UvlqtT8TZjpsgmSUxbagTAyy9dIXHAIaksXNHaRBhgs7D0a4xlf6MExp2sp75qBK/5lGqGG+RR8PcYlisw+nH/vnP1AQm3ujP5rL4vkCoLFk4+DVMlnScpiBDI482UM581YnCOlotXF2Oh34QEMVn0SQ0w6yNghLhMhlVk1EDjy/msttvAEef15Xm3f5njIQuzDljvigWRTAPE81peDY6EAXQAsNE3C29N6XLMVFgiefI5NF+PZ+Tu0geYOhP1r3GBixj6W+w3NfC/ZwzapVoA+6OimhYDNOETVLrrIkln4FtU+/RrCtqk1zZhLg22JkxHCNU5NuIiwC8sQcd+hquw63tZVc9vFXFdcVLJZLa/mgtFWUfVKOIQSjua18H4VqZAUP2p9EPcMYJgHRDh2P47R9zFdRdnD7CdNel8uWtdT4P4UFTytnuk=
- secure: H4xBumrS4Z8OXqW+evg/iczS0kRaK7g/HAn7g+a4bwxfHYME6CN7hvwy9MY+McidDcXz/BD88eJnZ4/SyKUdlFFd5PqN5tiUGkHsY9QcQjRTw5alNgONk8S5vHDXqlRizF5EKUm7yBC4DRgFlmhF4TJybxwjI3dSFrKYakvEEtlCC6O3JuXq/PYdoz95AbmoxVrqkGwAojDZdhZ6UggeN+IJYi1h1FZGA0mD5PMKUKAHKxl5WVy9cQYV/+cc4Qy4c/0mrPBZ4KRbHA+UWxEnA/H9DARWLSQsDMZy7QCcQ0OXuM21kVVPt2qNE8wZQ074oX+MKcJbnvGT+AJpDPJwL+iRjch8SuDVpLOWE/LDcNE+r3PjUuL6HdA7/NBN0jhOsKTB3N/D3ehRGpkWlwXnK3zw9/P7HJ6I9MXPf4hq89B+Rg9vRdLAhVxFIuTOLMONVJyALrzX4sm7TaJAdfNC0NIBZpwWKmHzN3eVQovapUfEPo+no2cMXOxwyV/tKXeg6Hf+u4PvHNcmmyCnEDLNd4syayYHWExh4nHkGQPAa6fpQ7FNUdo0AkvwK6lU5ylpHsbsjcWOgWQ7vjbuu08mJ3JsNgb3Lo3kNSm9PXECC9M4rIjyUzTGrFZsS2GbtaS9M0txO1B8Ysv59Y3wruMZ89vpeOoZI6gJoHkLvU7FvYo=
- secure: kOC0dbgpMXULsMY9rUXM+p4gsORHa/nLzVGO3DjGASo9V9aLDTcIH1FrxDmmXlT7yq6wCaQ6Qag+9ORQyYYNIozvNFE5Bu6cvKtUEQL1ejGUdstPMf1dCzxAv8L1IAzVhuszwVKbkAWCIPfnk+HOBeTt+JTPcU3XRZ1h8pT8K7OUlVTq+YExz6ba+R9slgsy/zhzkT3a9LTXjaI+FMcRXiX5GTAf4D4rhspVrls7rJ9TayM3tDdOA7+E3KiINFArIiR55rPweMYzq4EepwF1y28UKwACDCF9G17rlZUWQd1/FlUaRRH7Raqfe8M1pzPAjsJ3pY45ymuSCt+23LXtI273x3Fx3wcZyWsHtbUtSGaSyEVXG10uATk0YYnZmIpjGgci2H+p96tw9Q/uHT0zbfgXdGN717Cwzwn4ywBmzMPxDtwNJBzAM27qUI/wzOTrGwpUxetLqdWHe5vPDMskxi7YkLOH9Tyi9L6fY2PLztLN3FwSBaH0o9MDCca5iFdPQKnut8+jtLKc2NlcQe76HGNuk4pSDeEanK1zk2ac2Qo/FSQ4luHZOFa+r6aEHABK3EpfMQ8z9681Z4jY/TmLaGtFFv4kYxGvO4zkHoJcQcFpT8mRWxL8tDg8KyW228VNkucBVHSLzyddEi+0VcanAju7UNFMNyaDwPqG/hGqW0o=
- secure: pVcUGU+vNcilbe5y3+g0l173j0KW+/PVrVJE97k471jRgLkEH8W9nRWw0rcZmOEfSM+p5a1l8ubzqzriiJKIexVXkGfrL8k6tSibUY2HCcFG9RZPvCyqZvPqBFSpf11xQ/iKlGzjRKHmc39P4+jLUkVWIQYS496pLx/bzKBWYzUwTXOrHq9a26mBJ3Ud4iLK/Ztq06u1cZ1IE7Vo1x4f20+uF0ZKnhhLT1jDxS2W5mT3XGQWatlnLdhSy6qKOpdld1O4961hh9XrNvvAtqIZqWbfWLwMQ1y4c9oxhuon2e8/r6eovdess9d/bziqzadtimvmVVR8zHhKRx5F0G9ZqnmR5vnhL82hVKKYZmP4WNZvMJhdKmxtgiEWn5Idf/QqHpYCzPscEUqpfNNAzd5EA07UoRfExantO5QaI4IK6AOvy3J8RoG+ajbnwVFK6F+xahavOTAmV+LkRQbzN10srXpv1YsE0Y7L/R/RtThfzXI1Cq8+A5iItZb703VxAHaqVgFeL/VEDEaN31/ytxzQJ/dI33BrGAM+tM4LNe1H5CnvDzrHWy+a8jWXpUbrupi4Nk1plX+zE3uqjK/M2Wm8/IupVO9Euv7vme3uPkw+tSssnZQLvQE+AlbeaFjfaynCjkrTvj7AfBFmfU+L4EJDFVi9/ojwScWGwe5CaXvixAE=
- secure: QXqmDtpf4J4g33LQT/zUVlkQ+3+9Xsy6LwqTSi2aKbfQkBKKzvHhCVRqpudedgjtXyQmU4WK6LXRpyFGAL6BLeOY1eRzCVxfhIw4c3HTxwUlfx40kl/BTT/nyKzg2rZxf5+IIvejWRZQ+59+M/RClzv5gWD4WDW6wwvEfRbZ30rTgHIjvNZ2W/mrvuQcDNTps/HkJmbbS/oUP76sgKDEo4DL1qAVNsFrNpLa8p6gPzzLqevZcpW2RBtvEvpZ5SKoHs5SeKryWnq0shBsb0skuRV35HNhOvcLPWBYTPzxp5LjxN5EF+1akrAWMB38GHSbOAyZVH4sbupU928gK1Gyzs+zDP7ZKcAMcrwqGZcTBSbcUq0vVYNg+LRTORJ+jmcDwBSaGntpqUcKBXmyB1SGq9f79qCmGSJTBM5VLXcKPApT+hdx1p/B3F9NUNie/wcM7qOwsH3ROLryPwf+FmYlFxnZ5gHAt5nVWhXQDVijWBpnCIeHkoiI6eUMt4+feaifi+y1BwQyPpmZAsxfqvXrQm6M1UmBqNzaupc/ss/VRE0K1ExnXb5mNMl4m2V8TN7d/PgKmlwG9J4mA+C5hpcx7qHbno/rCJmWMqKk00KFB55MzdXyw3x2t2cxmf3ryy+qE7Y9Vp/7T3vdW94zh/zFsV7fZBfE4UPigbNKQ0kgzrs=
21 changes: 21 additions & 0 deletions MonkeyLib.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="EclipseModuleManager">
<conelement value="org.eclipse.buildship.core.gradleclasspathcontainer" />
<src_description expected_position="0">
<src_folder value="file://$MODULE_DIR$/src/main/kotlin" expected_position="0" />
<src_folder value="file://$MODULE_DIR$/src/test/kotlin" expected_position="1" />
</src_description>
</component>
<component name="NewModuleRootManager">
<output url="file://$MODULE_DIR$/bin/default" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="inheritedJdk" />
<orderEntry type="library" name="org.eclipse.buildship.core.gradleclasspathcontainer" level="application" />
</component>
</module>
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# MonkeyLib
# fault

[![Build Status](https://travis-ci.org/team5499/MonkeyLib.svg?branch=master)](https://travis-ci.org/team5499/MonkeyLib)
[![Code Coverage](https://codecov.io/gh/team5499/MonkeyLib/branch/master/graph/badge.svg)](https://codecov.io/gh/team5499/MonkeyLib)
[![Build Status](https://travis-ci.org/team5419/fault.svg?branch=master)](https://travis-ci.org/team5419/fault)
[![Code Coverage](https://codecov.io/gh/team5419/fault/branch/master/graph/badge.svg)](https://codecov.io/gh/team5419/fault)

MonkeyLib is team 5499's base kotlin code used in all of our robots. Mostly contains math and utilities
fault is team 5419's base kotlin code used in all of our robots. Mostly contains math and utilities
12 changes: 6 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import org.gradle.api.tasks.options.Option

plugins {
id 'org.jetbrains.kotlin.jvm' version '1.3.20'
id "edu.wpi.first.GradleRIO" version "2019.3.2"
id "edu.wpi.first.GradleRIO" version "2019.4.1"
id 'java-library'
id 'maven-publish'
id 'jacoco'
Expand Down Expand Up @@ -34,7 +34,7 @@ dependencies {

}

group = 'org.team5499'
group = 'org.team5419'
version = '2.11.0'


Expand Down Expand Up @@ -106,14 +106,14 @@ task install_hooks(dependsOn: 'tox')
publishing {
publications {
library(MavenPublication) {
artifactId = 'monkey-lib'
artifactId = 'fault'
from components.java
artifact sourcesJar
artifact javadocJar
pom {
name = 'MonkeyLib'
description = 'Commonly used utilities in FRC Team 5499\'s codebase'
url = 'https://github.com/team5499/MonkeyLib'
name = 'fault'
description = 'Commonly used utilities in FRC Team 5419\'s codebase'
url = 'https://github.com/team5419/fault'
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.team5499.monkeyLib
package org.team5419.fault

import org.team5499.monkeyLib.util.time.ITimer
import org.team5499.monkeyLib.util.time.WPITimer
import org.team5419.fault.util.time.ITimer
import org.team5419.fault.util.time.WPITimer

public abstract class Controller(timer: ITimer = WPITimer()) {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.team5499.monkeyLib
package org.team5419.fault

import org.team5499.monkeyLib.util.time.ITimer
import org.team5499.monkeyLib.util.time.WPITimer
import org.team5419.fault.util.time.ITimer
import org.team5419.fault.util.time.WPITimer

abstract class Subsystem(timer: ITimer = WPITimer()) {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
package org.team5499.monkeyLib.auto
import org.team5499.monkeyLib.util.time.ITimer
import org.team5499.monkeyLib.util.time.WPITimer
public open class Action(timeoutSeconds: Double, timer: ITimer = WPITimer()) {
private val mTimer: ITimer
private val mTimeoutSeconds: Double
init {
mTimer = timer
mTimeoutSeconds = timeoutSeconds
}
public open fun start() {
mTimer.stop()
mTimer.reset()
mTimer.start()
}
public open fun update() {}
protected fun timedOut(): Boolean {
val t = mTimer.get()
return (t >= mTimeoutSeconds)
}
public open fun next(): Boolean {
return timedOut()
}
public open fun finish() {}
}
package org.team5419.fault.auto

import org.team5419.fault.util.time.ITimer
import org.team5419.fault.util.time.WPITimer

public open class Action(timeoutSeconds: Double, timer: ITimer = WPITimer()) {

private val mTimer: ITimer
private val mTimeoutSeconds: Double

init {
mTimer = timer
mTimeoutSeconds = timeoutSeconds
}

public open fun start() {
mTimer.stop()
mTimer.reset()
mTimer.start()
}

public open fun update() {}

protected fun timedOut(): Boolean {
val t = mTimer.get()
return (t >= mTimeoutSeconds)
}

public open fun next(): Boolean {
return timedOut()
}

public open fun finish() {}
}
6 changes: 6 additions & 0 deletions src/main/kotlin/org/team5419/fault/auto/NothingAction.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package org.team5419.fault.auto

import org.team5419.fault.util.time.ITimer
import org.team5419.fault.util.time.WPITimer

public class NothingAction(timeout: Double, timer: ITimer = WPITimer()) : Action(timeout, timer)
Original file line number Diff line number Diff line change
@@ -1,44 +1,44 @@
package org.team5499.monkeyLib.auto
import org.team5499.monkeyLib.util.time.ITimer
import org.team5499.monkeyLib.util.time.WPITimer
class ParallelAction(vararg actions: Action, timer: ITimer = WPITimer()) : Action(0.0, timer) {
private val mActions: Array<out Action>
init {
mActions = actions.copyOf()
}
override fun start() {
super.start()
for (a: Action in mActions) {
a.start()
}
}
override fun update() {
super.update()
for (a: Action in mActions) {
a.update()
}
}
@Suppress("ReturnCount")
override fun next(): Boolean {
for (a: Action in mActions) {
if (!a.next()) {
return false
}
}
return true
}
override fun finish() {
super.finish()
for (a: Action in mActions) {
a.finish()
}
}
}
package org.team5419.fault.auto

import org.team5419.fault.util.time.ITimer
import org.team5419.fault.util.time.WPITimer

class ParallelAction(vararg actions: Action, timer: ITimer = WPITimer()) : Action(0.0, timer) {

private val mActions: Array<out Action>

init {
mActions = actions.copyOf()
}

override fun start() {
super.start()
for (a: Action in mActions) {
a.start()
}
}

override fun update() {
super.update()
for (a: Action in mActions) {
a.update()
}
}

@Suppress("ReturnCount")
override fun next(): Boolean {
for (a: Action in mActions) {
if (!a.next()) {
return false
}
}
return true
}

override fun finish() {
super.finish()
for (a: Action in mActions) {
a.finish()
}
}
}
63 changes: 63 additions & 0 deletions src/main/kotlin/org/team5419/fault/auto/ParrallelRoutine.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@

package org.team5419.fault.auto

import org.team5419.fault.math.geometry.Rotation2d
import org.team5419.fault.math.geometry.Vector2
import org.team5419.fault.math.geometry.Pose2d

public class ParrallelRoutine(name: String, startPose: Pose2d, vararg routines: Routine) {
/*: Routine(name, startPose, routines) {*/

private val routines: Array<out Routine>
var stepNumber: Int
get() = field
val name: String
get() = field
val startPose: Pose2d
get() = field

@Suppress("SpreadOperator")
public constructor(name: String, vararg routines: Routine) :
this(name, Pose2d(Vector2(0, 0), Rotation2d.fromDegrees(0.0)), *routines)

init {
this.stepNumber = 0
this.name = name
this.startPose = startPose
this.routines = routines.copyOf()
}

// use an array instead?
// returns MutableList of all current Actions
public fun getCurrentActions(): MutableList<Action> {
val actions: MutableList<Action> = mutableListOf<Action>()
for (r: Routine in this.routines) actions.add(r.getCurrentAction())
return actions
}

// advance all subroutines
public fun advanceRoutine() {
if (!this.isLastStep()) {
stepNumber++
for (r: Routine in this.routines) r.advanceRoutine()
}
}

// returns true if all subroutines are done
public fun isLastStep(): Boolean {
for (r: Routine in this.routines) {
if (!r.isLastStep()) {
return false
}
}
return true
}

// resets all subroutines
public fun reset() {
this.stepNumber = 0
for (r: Routine in this.routines) {
r.reset()
}
}
}
Loading