From 7aa6422f071fa1b9bb2ef6c59233b3991406e408 Mon Sep 17 00:00:00 2001 From: shueja-personal Date: Tue, 7 Nov 2023 00:17:40 -0800 Subject: [PATCH] Initial 2024 commit with rebrand imperative logging, structs for geom types Delete build directory hide build directory from git --- .gitignore | 175 +++++++++ .vscode/launch.json | 21 ++ .vscode/settings.json | 29 ++ .wpilib/wpilib_preferences.json | 6 + monologue/.gitignore | 1 + monologue/WPILib-License.md | 24 ++ monologue/build.gradle | 122 ++++++ monologue/format.gradle | 55 +++ monologue/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 63721 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + monologue/gradlew | 249 +++++++++++++ monologue/gradlew.bat | 92 +++++ monologue/settings.gradle | 30 ++ monologue/src/generate/geomTypes.json | 26 ++ .../src/generate/java/DataLogger.java.jinja | 132 +++++++ .../src/generate/java/DataType.java.jinja | 132 +++++++ .../generate/java/GenericLogger.java.jinja | 147 ++++++++ monologue/src/generate/java/Logged.java.jinja | 24 ++ .../src/generate/java/NTLogger.java.jinja | 166 +++++++++ monologue/src/generate/types.json | 173 +++++++++ monologue/src/main/deploy/example.txt | 3 + .../monologue/DataLogSendableBuilder.java | 302 +++++++++++++++ .../src/main/java/monologue/Monologue.java | 351 ++++++++++++++++++ .../main/java/monologue/util/GeomPacker.java | 113 ++++++ test-project/.gitignore | 172 +++++++++ test-project/.vscode/launch.json | 21 ++ test-project/.vscode/settings.json | 29 ++ test-project/.wpilib/wpilib_preferences.json | 6 + test-project/FRC_20231107_081556.wpilog | Bin 0 -> 1266771 bytes test-project/WPILib-License.md | 24 ++ test-project/build.gradle | 109 ++++++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 63721 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + test-project/gradlew | 249 +++++++++++++ test-project/gradlew.bat | 92 +++++ test-project/networktables.json | 1 + test-project/settings.gradle | 30 ++ test-project/simgui-ds.json | 92 +++++ test-project/simgui.json | 26 ++ .../src/main/java/frc/robot/Geometry.java | 73 ++++ .../src/main/java/frc/robot/Internal.java | 52 +++ .../src/main/java/frc/robot/Main.java | 25 ++ .../src/main/java/frc/robot/Robot.java | 142 +++++++ .../vendordeps/WPILibNewCommands.json | 38 ++ 44 files changed, 3568 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .wpilib/wpilib_preferences.json create mode 100644 monologue/.gitignore create mode 100644 monologue/WPILib-License.md create mode 100644 monologue/build.gradle create mode 100644 monologue/format.gradle create mode 100644 monologue/gradle/wrapper/gradle-wrapper.jar create mode 100644 monologue/gradle/wrapper/gradle-wrapper.properties create mode 100644 monologue/gradlew create mode 100644 monologue/gradlew.bat create mode 100644 monologue/settings.gradle create mode 100644 monologue/src/generate/geomTypes.json create mode 100644 monologue/src/generate/java/DataLogger.java.jinja create mode 100644 monologue/src/generate/java/DataType.java.jinja create mode 100644 monologue/src/generate/java/GenericLogger.java.jinja create mode 100644 monologue/src/generate/java/Logged.java.jinja create mode 100644 monologue/src/generate/java/NTLogger.java.jinja create mode 100644 monologue/src/generate/types.json create mode 100644 monologue/src/main/deploy/example.txt create mode 100644 monologue/src/main/java/monologue/DataLogSendableBuilder.java create mode 100644 monologue/src/main/java/monologue/Monologue.java create mode 100644 monologue/src/main/java/monologue/util/GeomPacker.java create mode 100644 test-project/.gitignore create mode 100644 test-project/.vscode/launch.json create mode 100644 test-project/.vscode/settings.json create mode 100644 test-project/.wpilib/wpilib_preferences.json create mode 100644 test-project/FRC_20231107_081556.wpilog create mode 100644 test-project/WPILib-License.md create mode 100644 test-project/build.gradle create mode 100644 test-project/gradle/wrapper/gradle-wrapper.jar create mode 100644 test-project/gradle/wrapper/gradle-wrapper.properties create mode 100644 test-project/gradlew create mode 100644 test-project/gradlew.bat create mode 100644 test-project/networktables.json create mode 100644 test-project/settings.gradle create mode 100644 test-project/simgui-ds.json create mode 100644 test-project/simgui.json create mode 100644 test-project/src/main/java/frc/robot/Geometry.java create mode 100644 test-project/src/main/java/frc/robot/Internal.java create mode 100644 test-project/src/main/java/frc/robot/Main.java create mode 100644 test-project/src/main/java/frc/robot/Robot.java create mode 100644 test-project/vendordeps/WPILibNewCommands.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8cad368 --- /dev/null +++ b/.gitignore @@ -0,0 +1,175 @@ +# This gitignore has been specially created by the WPILib team. +# If you remove items from this file, intellisense might break. + +### C++ ### +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +### Java ### +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +### Gradle ### +.gradle +/build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Cache of project +.gradletasknamecache + +# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 +# gradle/wrapper/gradle-wrapper.properties + +# # VS Code Specific Java Settings +# DO NOT REMOVE .classpath and .project +.classpath +.project +.settings/ +bin/ + +# IntelliJ +*.iml +*.ipr +*.iws +.idea/ +out/ + +# Fleet +.fleet + +# Simulation GUI and other tools window save file +*-window.json +*.wpilog +monologue/build/ +!monologue/build/generated/ diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..5b804e8 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "type": "wpilib", + "name": "WPILib Desktop Debug", + "request": "launch", + "desktop": true, + }, + { + "type": "wpilib", + "name": "WPILib roboRIO Debug", + "request": "launch", + "desktop": false, + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..8be11f2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,29 @@ +{ + "java.configuration.updateBuildConfiguration": "automatic", + "java.server.launchMode": "Standard", + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "bin/": true, + "**/.classpath": true, + "**/.project": true, + "**/.settings": true, + "**/.factorypath": true, + "**/*~": true + }, + "java.test.config": [ + { + "name": "WPIlibUnitTests", + "workingDirectory": "${workspaceFolder}/build/jni/release", + "vmargs": [ "-Djava.library.path=${workspaceFolder}/build/jni/release" ], + "env": { + "LD_LIBRARY_PATH": "${workspaceFolder}/build/jni/release" , + "DYLD_LIBRARY_PATH": "${workspaceFolder}/build/jni/release" + } + }, + ], + "java.test.defaultConfig": "WPIlibUnitTests" +} diff --git a/.wpilib/wpilib_preferences.json b/.wpilib/wpilib_preferences.json new file mode 100644 index 0000000..3acf127 --- /dev/null +++ b/.wpilib/wpilib_preferences.json @@ -0,0 +1,6 @@ +{ + "enableCppIntellisense": false, + "currentLanguage": "java", + "projectYear": "2024beta", + "teamNumber": 6995 +} \ No newline at end of file diff --git a/monologue/.gitignore b/monologue/.gitignore new file mode 100644 index 0000000..d163863 --- /dev/null +++ b/monologue/.gitignore @@ -0,0 +1 @@ +build/ \ No newline at end of file diff --git a/monologue/WPILib-License.md b/monologue/WPILib-License.md new file mode 100644 index 0000000..8434944 --- /dev/null +++ b/monologue/WPILib-License.md @@ -0,0 +1,24 @@ +Copyright (c) 2009-2023 FIRST and other WPILib contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of FIRST, WPILib, nor the names of other WPILib + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY FIRST AND OTHER WPILIB CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY NONINFRINGEMENT AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL FIRST OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/monologue/build.gradle b/monologue/build.gradle new file mode 100644 index 0000000..1cb3cd1 --- /dev/null +++ b/monologue/build.gradle @@ -0,0 +1,122 @@ +buildscript { + repositories { + maven { + url = 'https://frcmaven.wpi.edu/artifactory/ex-mvn' + } + } + dependencies { + classpath 'com.hubspot.jinjava:jinjava:2.7.1' + } +} + + +plugins { + id "maven-publish" + id "java-library" + id "edu.wpi.first.GradleRIO" version "2024.1.1-beta-3" + id 'com.diffplug.spotless' version '6.21.0' apply false +} + +publishing { + publications { + maven(MavenPublication) { + from components.java + groupId = "com.github.shueja-personal" + artifactId = "Monologue" + version = "v1.0.0-alpha1" + } + } +} + +sourceCompatibility = JavaVersion.VERSION_11 +targetCompatibility = JavaVersion.VERSION_11 + +// Set to true to use debug for JNI. +wpi.java.debugJni = false + +// Set this to true to enable desktop support. +def includeDesktopSupport = true + +// Defining my dependencies. In this case, WPILib (+ friends), and vendor libraries. +// Also defines JUnit 5. + +dependencies { + api wpi.java.deps.wpilib() + + nativeDebug wpi.java.deps.wpilibJniDebug(wpi.platforms.desktop) + nativeDebug wpi.java.vendor.jniDebug(wpi.platforms.desktop) + simulationDebug wpi.sim.enableDebug() + + nativeRelease wpi.java.deps.wpilibJniRelease(wpi.platforms.desktop) + nativeRelease wpi.java.vendor.jniRelease(wpi.platforms.desktop) + simulationRelease wpi.sim.enableRelease() + + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2' + testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.2' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2' +} + +test { + useJUnitPlatform() + systemProperty 'junit.jupiter.extensions.autodetection.enabled', 'true' +} +wpi.java.configureTestTasks(test) + +// Configure string concat to always inline compile +tasks.withType(JavaCompile) { + options.compilerArgs.add '-XDstringConcat=inline' +} + +import groovy.json.JsonSlurper; +import com.hubspot.jinjava.Jinjava; +import com.hubspot.jinjava.JinjavaConfig; + +def monologueTypesInputFile = file("src/generate/types.json") +def geomTypesInputFile = file("src/generate/geomTypes.json") +def monologueJavaTypesInputDir = file("src/generate/java") +def monologueJavaTypesOutputDir = file("$buildDir/generated/main/java/monologue") + +task monologueGenerateClasses() { + description = "Generates Monologue Java classes" + group = "Monologue" + + inputs.file monologueTypesInputFile + inputs.file geomTypesInputFile + inputs.dir monologueJavaTypesInputDir + outputs.dir monologueJavaTypesOutputDir + + doLast { + def jsonSlurper = new JsonSlurper() + def jsonTypes = jsonSlurper.parse(monologueTypesInputFile) + def geomTypes = jsonSlurper.parse(geomTypesInputFile) + + monologueJavaTypesOutputDir.deleteDir() + monologueJavaTypesOutputDir.mkdirs() + + def config = new JinjavaConfig() + def jinjava = new Jinjava(config) + + monologueJavaTypesInputDir.listFiles().each { File file -> + def template = file.text + def outfn = file.name.substring(0, file.name.length() - 6) + if (file.name.startsWith("NTLogger") + || file.name.startsWith("DataLogger") + || file.name.startsWith("GenericLogger") + || file.name.startsWith("DataType") + || file.name.startsWith("Logged")) { + def replacements = new HashMap() + replacements.put("types", jsonTypes) + replacements.put("geomTypes", geomTypes) + def output = jinjava.render(template, replacements) + new File(monologueJavaTypesOutputDir, outfn).write(output) + } + } + } +} + +sourceSets.main.java.srcDir "${buildDir}/generated/main/java" +compileJava.dependsOn(monologueGenerateClasses) + +allprojects { + apply from: "$rootProject.projectDir/format.gradle" +} diff --git a/monologue/format.gradle b/monologue/format.gradle new file mode 100644 index 0000000..3232bfd --- /dev/null +++ b/monologue/format.gradle @@ -0,0 +1,55 @@ + +apply plugin: 'com.diffplug.spotless' + +spotless { + enforceCheck = false + java { + target fileTree('.') { + include '**/*.java' + exclude '**/build/**', '**/build-*/**', '**/bin/**' + } + toggleOffOn() + googleJavaFormat() + removeUnusedImports() + trimTrailingWhitespace() + endWithNewline() + } + groovyGradle { + target fileTree('.') { + include '**/*.gradle' + exclude '**/build/**', '**/build-*/**', '**/bin/**' + } + greclipse() + indentWithSpaces(4) + trimTrailingWhitespace() + endWithNewline() + } + json { + target fileTree('.') { + include '**/*.json' + exclude '**/build/**', '**/build-*/**', '**/bin/**', '**/.vscode/**' + exclude '**/simgui-ds.json', '**/simgui-window.json', '**/simgui.json', '**/networktables.json' + } + gson() + .indentWithSpaces(2) + } + format 'xml', { + target fileTree('.') { + include '**/*.xml' + exclude '**/build/**', '**/build-*/**', '**/bin/**' + } + eclipseWtp('xml') + trimTrailingWhitespace() + indentWithSpaces(2) + endWithNewline() + } + format 'misc', { + target fileTree('.') { + include '**/*.md', '**/.gitignore' + exclude '**/build/**', '**/build-*/**', '**/bin/**' + } + trimTrailingWhitespace() + indentWithSpaces(2) + endWithNewline() + } +} diff --git a/monologue/gradle/wrapper/gradle-wrapper.jar b/monologue/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7f93135c49b765f8051ef9d0a6055ff8e46073d8 GIT binary patch literal 63721 zcmb5Wb9gP!wgnp7wrv|bwr$&XvSZt}Z6`anZSUAlc9NHKf9JdJ;NJVr`=eI(_pMp0 zy1VAAG3FfAOI`{X1O)&90s;U4K;XLp008~hCjbEC_fbYfS%6kTR+JtXK>nW$ZR+`W ze|#J8f4A@M|F5BpfUJb5h>|j$jOe}0oE!`Zf6fM>CR?!y@zU(cL8NsKk`a z6tx5mAkdjD;J=LcJ;;Aw8p!v#ouk>mUDZF@ zK>yvw%+bKu+T{Nk@LZ;zkYy0HBKw06_IWcMHo*0HKpTsEFZhn5qCHH9j z)|XpN&{`!0a>Vl+PmdQc)Yg4A(AG-z!+@Q#eHr&g<9D?7E)_aEB?s_rx>UE9TUq|? z;(ggJt>9l?C|zoO@5)tu?EV0x_7T17q4fF-q3{yZ^ipUbKcRZ4Qftd!xO(#UGhb2y>?*@{xq%`(-`2T^vc=#< zx!+@4pRdk&*1ht2OWk^Z5IAQ0YTAXLkL{(D*$gENaD)7A%^XXrCchN&z2x+*>o2FwPFjWpeaL=!tzv#JOW#( z$B)Nel<+$bkH1KZv3&-}=SiG~w2sbDbAWarg%5>YbC|}*d9hBjBkR(@tyM0T)FO$# zPtRXukGPnOd)~z=?avu+4Co@wF}1T)-uh5jI<1$HLtyDrVak{gw`mcH@Q-@wg{v^c zRzu}hMKFHV<8w}o*yg6p@Sq%=gkd~;`_VGTS?L@yVu`xuGy+dH6YOwcP6ZE`_0rK% zAx5!FjDuss`FQ3eF|mhrWkjux(Pny^k$u_)dyCSEbAsecHsq#8B3n3kDU(zW5yE|( zgc>sFQywFj5}U*qtF9Y(bi*;>B7WJykcAXF86@)z|0-Vm@jt!EPoLA6>r)?@DIobIZ5Sx zsc@OC{b|3%vaMbyeM|O^UxEYlEMHK4r)V-{r)_yz`w1*xV0|lh-LQOP`OP`Pk1aW( z8DSlGN>Ts|n*xj+%If~+E_BxK)~5T#w6Q1WEKt{!Xtbd`J;`2a>8boRo;7u2M&iOop4qcy<)z023=oghSFV zST;?S;ye+dRQe>ygiJ6HCv4;~3DHtJ({fWeE~$H@mKn@Oh6Z(_sO>01JwH5oA4nvK zr5Sr^g+LC zLt(i&ecdmqsIJGNOSUyUpglvhhrY8lGkzO=0USEKNL%8zHshS>Qziu|`eyWP^5xL4 zRP122_dCJl>hZc~?58w~>`P_s18VoU|7(|Eit0-lZRgLTZKNq5{k zE?V=`7=R&ro(X%LTS*f+#H-mGo_j3dm@F_krAYegDLk6UV{`UKE;{YSsn$ z(yz{v1@p|p!0>g04!eRSrSVb>MQYPr8_MA|MpoGzqyd*$@4j|)cD_%^Hrd>SorF>@ zBX+V<@vEB5PRLGR(uP9&U&5=(HVc?6B58NJT_igiAH*q~Wb`dDZpJSKfy5#Aag4IX zj~uv74EQ_Q_1qaXWI!7Vf@ZrdUhZFE;L&P_Xr8l@GMkhc#=plV0+g(ki>+7fO%?Jb zl+bTy7q{w^pTb{>(Xf2q1BVdq?#f=!geqssXp z4pMu*q;iiHmA*IjOj4`4S&|8@gSw*^{|PT}Aw~}ZXU`6=vZB=GGeMm}V6W46|pU&58~P+?LUs%n@J}CSrICkeng6YJ^M? zS(W?K4nOtoBe4tvBXs@@`i?4G$S2W&;$z8VBSM;Mn9 zxcaEiQ9=vS|bIJ>*tf9AH~m&U%2+Dim<)E=}KORp+cZ^!@wI`h1NVBXu{@%hB2Cq(dXx_aQ9x3mr*fwL5!ZryQqi|KFJuzvP zK1)nrKZ7U+B{1ZmJub?4)Ln^J6k!i0t~VO#=q1{?T)%OV?MN}k5M{}vjyZu#M0_*u z8jwZKJ#Df~1jcLXZL7bnCEhB6IzQZ-GcoQJ!16I*39iazoVGugcKA{lhiHg4Ta2fD zk1Utyc5%QzZ$s3;p0N+N8VX{sd!~l*Ta3|t>lhI&G`sr6L~G5Lul`>m z{!^INm?J|&7X=;{XveF!(b*=?9NAp4y&r&N3(GKcW4rS(Ejk|Lzs1PrxPI_owB-`H zg3(Rruh^&)`TKA6+_!n>RdI6pw>Vt1_j&+bKIaMTYLiqhZ#y_=J8`TK{Jd<7l9&sY z^^`hmi7^14s16B6)1O;vJWOF$=$B5ONW;;2&|pUvJlmeUS&F;DbSHCrEb0QBDR|my zIs+pE0Y^`qJTyH-_mP=)Y+u^LHcuZhsM3+P||?+W#V!_6E-8boP#R-*na4!o-Q1 zVthtYhK{mDhF(&7Okzo9dTi03X(AE{8cH$JIg%MEQca`S zy@8{Fjft~~BdzWC(di#X{ny;!yYGK9b@=b|zcKZ{vv4D8i+`ilOPl;PJl{!&5-0!w z^fOl#|}vVg%=n)@_e1BrP)`A zKPgs`O0EO}Y2KWLuo`iGaKu1k#YR6BMySxQf2V++Wo{6EHmK>A~Q5o73yM z-RbxC7Qdh0Cz!nG+7BRZE>~FLI-?&W_rJUl-8FDIaXoNBL)@1hwKa^wOr1($*5h~T zF;%f^%<$p8Y_yu(JEg=c_O!aZ#)Gjh$n(hfJAp$C2he555W5zdrBqjFmo|VY+el;o z=*D_w|GXG|p0**hQ7~9-n|y5k%B}TAF0iarDM!q-jYbR^us(>&y;n^2l0C%@2B}KM zyeRT9)oMt97Agvc4sEKUEy%MpXr2vz*lb zh*L}}iG>-pqDRw7ud{=FvTD?}xjD)w{`KzjNom-$jS^;iw0+7nXSnt1R@G|VqoRhE%12nm+PH?9`(4rM0kfrZzIK9JU=^$YNyLvAIoxl#Q)xxDz!^0@zZ zSCs$nfcxK_vRYM34O<1}QHZ|hp4`ioX3x8(UV(FU$J@o%tw3t4k1QPmlEpZa2IujG&(roX_q*%e`Hq|);0;@k z0z=fZiFckp#JzW0p+2A+D$PC~IsakhJJkG(c;CqAgFfU0Z`u$PzG~-9I1oPHrCw&)@s^Dc~^)#HPW0Ra}J^=|h7Fs*<8|b13ZzG6MP*Q1dkoZ6&A^!}|hbjM{2HpqlSXv_UUg1U4gn z3Q)2VjU^ti1myodv+tjhSZp%D978m~p& z43uZUrraHs80Mq&vcetqfQpQP?m!CFj)44t8Z}k`E798wxg&~aCm+DBoI+nKq}&j^ zlPY3W$)K;KtEajks1`G?-@me7C>{PiiBu+41#yU_c(dITaqE?IQ(DBu+c^Ux!>pCj zLC|HJGU*v+!it1(;3e`6igkH(VA)-S+k(*yqxMgUah3$@C zz`7hEM47xr>j8^g`%*f=6S5n>z%Bt_Fg{Tvmr+MIsCx=0gsu_sF`q2hlkEmisz#Fy zj_0;zUWr;Gz}$BS%Y`meb(=$d%@Crs(OoJ|}m#<7=-A~PQbyN$x%2iXP2@e*nO0b7AwfH8cCUa*Wfu@b)D_>I*%uE4O3 z(lfnB`-Xf*LfC)E}e?%X2kK7DItK6Tf<+M^mX0Ijf_!IP>7c8IZX%8_#0060P{QMuV^B9i<^E`_Qf0pv9(P%_s8D`qvDE9LK9u-jB}J2S`(mCO&XHTS04Z5Ez*vl^T%!^$~EH8M-UdwhegL>3IQ*)(MtuH2Xt1p!fS4o~*rR?WLxlA!sjc2(O znjJn~wQ!Fp9s2e^IWP1C<4%sFF}T4omr}7+4asciyo3DntTgWIzhQpQirM$9{EbQd z3jz9vS@{aOqTQHI|l#aUV@2Q^Wko4T0T04Me4!2nsdrA8QY1%fnAYb~d2GDz@lAtfcHq(P7 zaMBAGo}+NcE-K*@9y;Vt3*(aCaMKXBB*BJcD_Qnxpt75r?GeAQ}*|>pYJE=uZb73 zC>sv)18)q#EGrTG6io*}JLuB_jP3AU1Uiu$D7r|2_zlIGb9 zjhst#ni)Y`$)!fc#reM*$~iaYoz~_Cy7J3ZTiPm)E?%`fbk`3Tu-F#`{i!l5pNEn5 zO-Tw-=TojYhzT{J=?SZj=Z8#|eoF>434b-DXiUsignxXNaR3 zm_}4iWU$gt2Mw5NvZ5(VpF`?X*f2UZDs1TEa1oZCif?Jdgr{>O~7}-$|BZ7I(IKW`{f;@|IZFX*R8&iT= zoWstN8&R;}@2Ka%d3vrLtR|O??ben;k8QbS-WB0VgiCz;<$pBmIZdN!aalyCSEm)crpS9dcD^Y@XT1a3+zpi-`D}e#HV<} z$Y(G&o~PvL-xSVD5D?JqF3?B9rxGWeb=oEGJ3vRp5xfBPlngh1O$yI95EL+T8{GC@ z98i1H9KhZGFl|;`)_=QpM6H?eDPpw~^(aFQWwyXZ8_EEE4#@QeT_URray*mEOGsGc z6|sdXtq!hVZo=d#+9^@lm&L5|q&-GDCyUx#YQiccq;spOBe3V+VKdjJA=IL=Zn%P} zNk=_8u}VhzFf{UYZV0`lUwcD&)9AFx0@Fc6LD9A6Rd1=ga>Mi0)_QxM2ddCVRmZ0d z+J=uXc(?5JLX3=)e)Jm$HS2yF`44IKhwRnm2*669_J=2LlwuF5$1tAo@ROSU@-y+;Foy2IEl2^V1N;fk~YR z?&EP8#t&m0B=?aJeuz~lHjAzRBX>&x=A;gIvb>MD{XEV zV%l-+9N-)i;YH%nKP?>f`=?#`>B(`*t`aiPLoQM(a6(qs4p5KFjDBN?8JGrf3z8>= zi7sD)c)Nm~x{e<^jy4nTx${P~cwz_*a>%0_;ULou3kHCAD7EYkw@l$8TN#LO9jC( z1BeFW`k+bu5e8Ns^a8dPcjEVHM;r6UX+cN=Uy7HU)j-myRU0wHd$A1fNI~`4;I~`zC)3ul#8#^rXVSO*m}Ag>c%_;nj=Nv$rCZ z*~L@C@OZg%Q^m)lc-kcX&a*a5`y&DaRxh6O*dfhLfF+fU5wKs(1v*!TkZidw*)YBP za@r`3+^IHRFeO%!ai%rxy;R;;V^Fr=OJlpBX;(b*3+SIw}7= zIq$*Thr(Zft-RlY)D3e8V;BmD&HOfX+E$H#Y@B3?UL5L~_fA-@*IB-!gItK7PIgG9 zgWuGZK_nuZjHVT_Fv(XxtU%)58;W39vzTI2n&)&4Dmq7&JX6G>XFaAR{7_3QB6zsT z?$L8c*WdN~nZGiscY%5KljQARN;`w$gho=p006z;n(qIQ*Zu<``TMO3n0{ARL@gYh zoRwS*|Niw~cR!?hE{m*y@F`1)vx-JRfqET=dJ5_(076st(=lFfjtKHoYg`k3oNmo_ zNbQEw8&sO5jAYmkD|Zaz_yUb0rC})U!rCHOl}JhbYIDLzLvrZVw0~JO`d*6f;X&?V=#T@ND*cv^I;`sFeq4 z##H5;gpZTb^0Hz@3C*~u0AqqNZ-r%rN3KD~%Gw`0XsIq$(^MEb<~H(2*5G^<2(*aI z%7}WB+TRlMIrEK#s0 z93xn*Ohb=kWFc)BNHG4I(~RPn-R8#0lqyBBz5OM6o5|>x9LK@%HaM}}Y5goCQRt2C z{j*2TtT4ne!Z}vh89mjwiSXG=%DURar~=kGNNaO_+Nkb+tRi~Rkf!7a$*QlavziD( z83s4GmQ^Wf*0Bd04f#0HX@ua_d8 z23~z*53ePD6@xwZ(vdl0DLc=>cPIOPOdca&MyR^jhhKrdQO?_jJh`xV3GKz&2lvP8 zEOwW6L*ufvK;TN{=S&R@pzV^U=QNk^Ec}5H z+2~JvEVA{`uMAr)?Kf|aW>33`)UL@bnfIUQc~L;TsTQ6>r-<^rB8uoNOJ>HWgqMI8 zSW}pZmp_;z_2O5_RD|fGyTxaxk53Hg_3Khc<8AUzV|ZeK{fp|Ne933=1&_^Dbv5^u zB9n=*)k*tjHDRJ@$bp9mrh}qFn*s}npMl5BMDC%Hs0M0g-hW~P*3CNG06G!MOPEQ_ zi}Qs-6M8aMt;sL$vlmVBR^+Ry<64jrm1EI1%#j?c?4b*7>)a{aDw#TfTYKq+SjEFA z(aJ&z_0?0JB83D-i3Vh+o|XV4UP+YJ$9Boid2^M2en@APw&wx7vU~t$r2V`F|7Qfo z>WKgI@eNBZ-+Og<{u2ZiG%>YvH2L3fNpV9J;WLJoBZda)01Rn;o@){01{7E#ke(7U zHK>S#qZ(N=aoae*4X!0A{)nu0R_sKpi1{)u>GVjC+b5Jyl6#AoQ-1_3UDovNSo`T> z?c-@7XX*2GMy?k?{g)7?Sv;SJkmxYPJPs!&QqB12ejq`Lee^-cDveVWL^CTUldb(G zjDGe(O4P=S{4fF=#~oAu>LG>wrU^z_?3yt24FOx>}{^lCGh8?vtvY$^hbZ)9I0E3r3NOlb9I?F-Yc=r$*~l`4N^xzlV~N zl~#oc>U)Yjl0BxV>O*Kr@lKT{Z09OXt2GlvE38nfs+DD7exl|&vT;)>VFXJVZp9Np zDK}aO;R3~ag$X*|hRVY3OPax|PG`@_ESc8E!mHRByJbZQRS38V2F__7MW~sgh!a>98Q2%lUNFO=^xU52|?D=IK#QjwBky-C>zOWlsiiM&1n z;!&1((Xn1$9K}xabq~222gYvx3hnZPg}VMF_GV~5ocE=-v>V=T&RsLBo&`)DOyIj* zLV{h)JU_y*7SdRtDajP_Y+rBkNN*1_TXiKwHH2&p51d(#zv~s#HwbNy?<+(=9WBvo zw2hkk2Dj%kTFhY+$T+W-b7@qD!bkfN#Z2ng@Pd=i3-i?xYfs5Z*1hO?kd7Sp^9`;Y zM2jeGg<-nJD1er@Pc_cSY7wo5dzQX44=%6rn}P_SRbpzsA{6B+!$3B0#;}qwO37G^ zL(V_5JK`XT?OHVk|{_$vQ|oNEpab*BO4F zUTNQ7RUhnRsU`TK#~`)$icsvKh~(pl=3p6m98@k3P#~upd=k*u20SNcb{l^1rUa)>qO997)pYRWMncC8A&&MHlbW?7i^7M`+B$hH~Y|J zd>FYOGQ;j>Zc2e7R{KK7)0>>nn_jYJy&o@sK!4G>-rLKM8Hv)f;hi1D2fAc$+six2 zyVZ@wZ6x|fJ!4KrpCJY=!Mq0;)X)OoS~{Lkh6u8J`eK%u0WtKh6B>GW_)PVc zl}-k`p09qwGtZ@VbYJC!>29V?Dr>>vk?)o(x?!z*9DJ||9qG-&G~#kXxbw{KKYy}J zQKa-dPt~M~E}V?PhW0R26xdA%1T*%ra6SguGu50YHngOTIv)@N|YttEXo#OZfgtP7;H?EeZZxo<}3YlYxtBq znJ!WFR^tmGf0Py}N?kZ(#=VtpC@%xJkDmfcCoBTxq zr_|5gP?u1@vJZbxPZ|G0AW4=tpb84gM2DpJU||(b8kMOV1S3|(yuwZJ&rIiFW(U;5 zUtAW`O6F6Zy+eZ1EDuP~AAHlSY-+A_eI5Gx)%*uro5tljy}kCZU*_d7)oJ>oQSZ3* zneTn`{gnNC&uJd)0aMBzAg021?YJ~b(fmkwZAd696a=0NzBAqBN54KuNDwa*no(^O z6p05bioXUR^uXjpTol*ppHp%1v9e)vkoUAUJyBx3lw0UO39b0?^{}yb!$yca(@DUn zCquRF?t=Zb9`Ed3AI6|L{eX~ijVH`VzSMheKoP7LSSf4g>md>`yi!TkoG5P>Ofp+n z(v~rW+(5L96L{vBb^g51B=(o)?%%xhvT*A5btOpw(TKh^g^4c zw>0%X!_0`{iN%RbVk+A^f{w-4-SSf*fu@FhruNL##F~sF24O~u zyYF<3el2b$$wZ_|uW#@Ak+VAGk#e|kS8nL1g>2B-SNMjMp^8;-FfeofY2fphFHO!{ z*!o4oTb{4e;S<|JEs<1_hPsmAlVNk?_5-Fp5KKU&d#FiNW~Y+pVFk@Cua1I{T+1|+ zHx6rFMor)7L)krbilqsWwy@T+g3DiH5MyVf8Wy}XbEaoFIDr~y;@r&I>FMW{ z?Q+(IgyebZ)-i4jNoXQhq4Muy9Fv+OxU;9_Jmn+<`mEC#%2Q_2bpcgzcinygNI!&^ z=V$)o2&Yz04~+&pPWWn`rrWxJ&}8khR)6B(--!9Q zubo}h+1T)>a@c)H^i``@<^j?|r4*{;tQf78(xn0g39IoZw0(CwY1f<%F>kEaJ zp9u|IeMY5mRdAlw*+gSN^5$Q)ShM<~E=(c8QM+T-Qk)FyKz#Sw0EJ*edYcuOtO#~Cx^(M7w5 z3)rl#L)rF|(Vun2LkFr!rg8Q@=r>9p>(t3Gf_auiJ2Xx9HmxYTa|=MH_SUlYL`mz9 zTTS$`%;D-|Jt}AP1&k7PcnfFNTH0A-*FmxstjBDiZX?}%u%Yq94$fUT&z6od+(Uk> zuqsld#G(b$G8tus=M!N#oPd|PVFX)?M?tCD0tS%2IGTfh}3YA3f&UM)W$_GNV8 zQo+a(ml2Km4o6O%gKTCSDNq+#zCTIQ1*`TIJh~k6Gp;htHBFnne))rlFdGqwC6dx2+La1&Mnko*352k0y z+tQcwndQlX`nc6nb$A9?<-o|r*%aWXV#=6PQic0Ok_D;q>wbv&j7cKc!w4~KF#-{6 z(S%6Za)WpGIWf7jZ3svNG5OLs0>vCL9{V7cgO%zevIVMH{WgP*^D9ws&OqA{yr|m| zKD4*07dGXshJHd#e%x%J+qmS^lS|0Bp?{drv;{@{l9ArPO&?Q5=?OO9=}h$oVe#3b z3Yofj&Cb}WC$PxmRRS)H%&$1-)z7jELS}!u!zQ?A^Y{Tv4QVt*vd@uj-^t2fYRzQj zfxGR>-q|o$3sGn^#VzZ!QQx?h9`njeJry}@x?|k0-GTTA4y3t2E`3DZ!A~D?GiJup z)8%PK2^9OVRlP(24P^4_<|D=H^7}WlWu#LgsdHzB%cPy|f8dD3|A^mh4WXxhLTVu_ z@abE{6Saz|Y{rXYPd4$tfPYo}ef(oQWZ=4Bct-=_9`#Qgp4ma$n$`tOwq#&E18$B; z@Bp)bn3&rEi0>fWWZ@7k5WazfoX`SCO4jQWwVuo+$PmSZn^Hz?O(-tW@*DGxuf)V1 zO_xm&;NVCaHD4dqt(-MlszI3F-p?0!-e$fbiCeuaw66h^TTDLWuaV<@C-`=Xe5WL) zwooG7h>4&*)p3pKMS3O!4>-4jQUN}iAMQ)2*70?hP~)TzzR?-f@?Aqy$$1Iy8VGG$ zMM?8;j!pUX7QQD$gRc_#+=raAS577ga-w?jd`vCiN5lu)dEUkkUPl9!?{$IJNxQys z*E4e$eF&n&+AMRQR2gcaFEjAy*r)G!s(P6D&TfoApMFC_*Ftx0|D0@E-=B7tezU@d zZ{hGiN;YLIoSeRS;9o%dEua4b%4R3;$SugDjP$x;Z!M!@QibuSBb)HY!3zJ7M;^jw zlx6AD50FD&p3JyP*>o+t9YWW8(7P2t!VQQ21pHJOcG_SXQD;(5aX#M6x##5H_Re>6lPyDCjxr*R(+HE%c&QN+b^tbT zXBJk?p)zhJj#I?&Y2n&~XiytG9!1ox;bw5Rbj~)7c(MFBb4>IiRATdhg zmiEFlj@S_hwYYI(ki{}&<;_7(Z0Qkfq>am z&LtL=2qc7rWguk3BtE4zL41@#S;NN*-jWw|7Kx7H7~_%7fPt;TIX}Ubo>;Rmj94V> zNB1=;-9AR7s`Pxn}t_6^3ahlq53e&!Lh85uG zec0vJY_6e`tg7LgfrJ3k!DjR)Bi#L@DHIrZ`sK=<5O0Ip!fxGf*OgGSpP@Hbbe&$9 z;ZI}8lEoC2_7;%L2=w?tb%1oL0V+=Z`7b=P&lNGY;yVBazXRYu;+cQDKvm*7NCxu&i;zub zAJh#11%?w>E2rf2e~C4+rAb-&$^vsdACs7 z@|Ra!OfVM(ke{vyiqh7puf&Yp6cd6{DptUteYfIRWG3pI+5< zBVBI_xkBAc<(pcb$!Y%dTW(b;B;2pOI-(QCsLv@U-D1XJ z(Gk8Q3l7Ws46Aktuj>|s{$6zA&xCPuXL-kB`CgYMs}4IeyG*P51IDwW?8UNQd+$i~ zlxOPtSi5L|gJcF@DwmJA5Ju8HEJ>o{{upwIpb!f{2(vLNBw`7xMbvcw<^{Fj@E~1( z?w`iIMieunS#>nXlmUcSMU+D3rX28f?s7z;X=se6bo8;5vM|O^(D6{A9*ChnGH!RG zP##3>LDC3jZPE4PH32AxrqPk|yIIrq~`aL-=}`okhNu9aT%q z1b)7iJ)CN=V#Ly84N_r7U^SH2FGdE5FpTO2 z630TF$P>GNMu8`rOytb(lB2};`;P4YNwW1<5d3Q~AX#P0aX}R2b2)`rgkp#zTxcGj zAV^cvFbhP|JgWrq_e`~exr~sIR$6p5V?o4Wym3kQ3HA+;Pr$bQ0(PmADVO%MKL!^q z?zAM8j1l4jrq|5X+V!8S*2Wl@=7*pPgciTVK6kS1Ge zMsd_u6DFK$jTnvVtE;qa+8(1sGBu~n&F%dh(&c(Zs4Fc#A=gG^^%^AyH}1^?|8quj zl@Z47h$){PlELJgYZCIHHL= z{U8O>Tw4x3<1{?$8>k-P<}1y9DmAZP_;(3Y*{Sk^H^A=_iSJ@+s5ktgwTXz_2$~W9>VVZsfwCm@s0sQ zeB50_yu@uS+e7QoPvdCwDz{prjo(AFwR%C?z`EL{1`|coJHQTk^nX=tvs1<0arUOJ z!^`*x&&BvTYmemyZ)2p~{%eYX=JVR?DYr(rNgqRMA5E1PR1Iw=prk=L2ldy3r3Vg@27IZx43+ywyzr-X*p*d@tZV+!U#~$-q=8c zgdSuh#r?b4GhEGNai)ayHQpk>5(%j5c@C1K3(W1pb~HeHpaqijJZa-e6vq_8t-^M^ zBJxq|MqZc?pjXPIH}70a5vt!IUh;l}<>VX<-Qcv^u@5(@@M2CHSe_hD$VG-eiV^V( zj7*9T0?di?P$FaD6oo?)<)QT>Npf6Og!GO^GmPV(Km0!=+dE&bk#SNI+C9RGQ|{~O*VC+tXK3!n`5 zHfl6>lwf_aEVV3`0T!aHNZLsj$paS$=LL(?b!Czaa5bbSuZ6#$_@LK<(7yrrl+80| z{tOFd=|ta2Z`^ssozD9BINn45NxUeCQis?-BKmU*Kt=FY-NJ+)8S1ecuFtN-M?&42 zl2$G>u!iNhAk*HoJ^4v^9#ORYp5t^wDj6|lx~5w45#E5wVqI1JQ~9l?nPp1YINf++ zMAdSif~_ETv@Er(EFBI^@L4BULFW>)NI+ejHFP*T}UhWNN`I)RRS8za? z*@`1>9ZB}An%aT5K=_2iQmfE;GcBVHLF!$`I99o5GO`O%O_zLr9AG18>&^HkG(;=V z%}c!OBQ~?MX(9h~tajX{=x)+!cbM7$YzTlmsPOdp2L-?GoW`@{lY9U3f;OUo*BwRB z8A+nv(br0-SH#VxGy#ZrgnGD(=@;HME;yd46EgWJ`EL%oXc&lFpc@Y}^>G(W>h_v_ zlN!`idhX+OjL+~T?19sroAFVGfa5tX-D49w$1g2g_-T|EpHL6}K_aX4$K=LTvwtlF zL*z}j{f+Uoe7{-px3_5iKPA<_7W=>Izkk)!l9ez2w%vi(?Y;i8AxRNLSOGDzNoqoI zP!1uAl}r=_871(G?y`i&)-7{u=%nxk7CZ_Qh#!|ITec zwQn`33GTUM`;D2POWnkqngqJhJRlM>CTONzTG}>^Q0wUunQyn|TAiHzyX2_%ATx%P z%7gW)%4rA9^)M<_%k@`Y?RbC<29sWU&5;@|9thf2#zf8z12$hRcZ!CSb>kUp=4N#y zl3hE#y6>kkA8VY2`W`g5Ip?2qC_BY$>R`iGQLhz2-S>x(RuWv)SPaGdl^)gGw7tjR zH@;jwk!jIaCgSg_*9iF|a);sRUTq30(8I(obh^|}S~}P4U^BIGYqcz;MPpC~Y@k_m zaw4WG1_vz2GdCAX!$_a%GHK**@IrHSkGoN>)e}>yzUTm52on`hYot7cB=oA-h1u|R ztH$11t?54Qg2L+i33FPFKKRm1aOjKST{l1*(nps`>sv%VqeVMWjl5+Gh+9);hIP8? zA@$?}Sc z3qIRpba+y5yf{R6G(u8Z^vkg0Fu&D-7?1s=QZU`Ub{-!Y`I?AGf1VNuc^L3v>)>i# z{DV9W$)>34wnzAXUiV^ZpYKw>UElrN_5Xj6{r_3| z$X5PK`e5$7>~9Dj7gK5ash(dvs`vwfk}&RD`>04;j62zoXESkFBklYaKm5seyiX(P zqQ-;XxlV*yg?Dhlx%xt!b0N3GHp@(p$A;8|%# zZ5m2KL|{on4nr>2_s9Yh=r5ScQ0;aMF)G$-9-Ca6%wA`Pa)i?NGFA|#Yi?{X-4ZO_ z^}%7%vkzvUHa$-^Y#aA+aiR5sa%S|Ebyn`EV<3Pc?ax_f>@sBZF1S;7y$CXd5t5=WGsTKBk8$OfH4v|0?0I=Yp}7c=WBSCg!{0n)XmiU;lfx)**zZaYqmDJelxk$)nZyx5`x$6R|fz(;u zEje5Dtm|a%zK!!tk3{i9$I2b{vXNFy%Bf{50X!x{98+BsDr_u9i>G5%*sqEX|06J0 z^IY{UcEbj6LDwuMh7cH`H@9sVt1l1#8kEQ(LyT@&+K}(ReE`ux8gb0r6L_#bDUo^P z3Ka2lRo52Hdtl_%+pwVs14=q`{d^L58PsU@AMf(hENumaxM{7iAT5sYmWh@hQCO^ zK&}ijo=`VqZ#a3vE?`7QW0ZREL17ZvDfdqKGD?0D4fg{7v%|Yj&_jcKJAB)>=*RS* zto8p6@k%;&^ZF>hvXm&$PCuEp{uqw3VPG$9VMdW5$w-fy2CNNT>E;>ejBgy-m_6`& z97L1p{%srn@O_JQgFpa_#f(_)eb#YS>o>q3(*uB;uZb605(iqM$=NK{nHY=+X2*G) zO3-_Xh%aG}fHWe*==58zBwp%&`mge<8uq8;xIxOd=P%9EK!34^E9sk|(Zq1QSz-JVeP12Fp)-`F|KY$LPwUE?rku zY@OJ)Z9A!ojfzfeyJ9;zv2EM7ZQB)AR5xGa-tMn^bl)FmoIiVyJ@!~@%{}qXXD&Ns zPnfe5U+&ohKefILu_1mPfLGuapX@btta5C#gPB2cjk5m4T}Nfi+Vfka!Yd(L?-c~5 z#ZK4VeQEXNPc4r$K00Fg>g#_W!YZ)cJ?JTS<&68_$#cZT-ME`}tcwqg3#``3M3UPvn+pi}(VNNx6y zFIMVb6OwYU(2`at$gHba*qrMVUl8xk5z-z~fb@Q3Y_+aXuEKH}L+>eW__!IAd@V}L zkw#s%H0v2k5-=vh$^vPCuAi22Luu3uKTf6fPo?*nvj$9(u)4$6tvF-%IM+3pt*cgs z_?wW}J7VAA{_~!?))?s6{M=KPpVhg4fNuU*|3THp@_(q!b*hdl{fjRVFWtu^1dV(f z6iOux9hi&+UK=|%M*~|aqFK{Urfl!TA}UWY#`w(0P!KMe1Si{8|o))Gy6d7;!JQYhgMYmXl?3FfOM2nQGN@~Ap6(G z3+d_5y@=nkpKAhRqf{qQ~k7Z$v&l&@m7Ppt#FSNzKPZM z8LhihcE6i=<(#87E|Wr~HKvVWhkll4iSK$^mUHaxgy8*K$_Zj;zJ`L$naPj+^3zTi z-3NTaaKnD5FPY-~?Tq6QHnmDDRxu0mh0D|zD~Y=vv_qig5r-cIbCpxlju&8Sya)@{ zsmv6XUSi)@(?PvItkiZEeN*)AE~I_?#+Ja-r8$(XiXei2d@Hi7Rx8+rZZb?ZLa{;@*EHeRQ-YDadz~M*YCM4&F-r;E#M+@CSJMJ0oU|PQ^ z=E!HBJDMQ2TN*Y(Ag(ynAL8%^v;=~q?s4plA_hig&5Z0x_^Oab!T)@6kRN$)qEJ6E zNuQjg|G7iwU(N8pI@_6==0CL;lRh1dQF#wePhmu@hADFd3B5KIH#dx(2A zp~K&;Xw}F_N6CU~0)QpQk7s$a+LcTOj1%=WXI(U=Dv!6 z{#<#-)2+gCyyv=Jw?Ab#PVkxPDeH|sAxyG`|Ys}A$PW4TdBv%zDz z^?lwrxWR<%Vzc8Sgt|?FL6ej_*e&rhqJZ3Y>k=X(^dytycR;XDU16}Pc9Vn0>_@H+ zQ;a`GSMEG64=JRAOg%~L)x*w{2re6DVprNp+FcNra4VdNjiaF0M^*>CdPkt(m150rCue?FVdL0nFL$V%5y6N z%eLr5%YN7D06k5ji5*p4v$UMM)G??Q%RB27IvH7vYr_^3>1D-M66#MN8tWGw>WED} z5AhlsanO=STFYFs)Il_0i)l)f<8qn|$DW7ZXhf5xI;m+7M5-%P63XFQrG9>DMqHc} zsgNU9nR`b}E^mL5=@7<1_R~j@q_2U^3h|+`7YH-?C=vme1C3m`Fe0HC>pjt6f_XMh zy~-i-8R46QNYneL4t@)<0VU7({aUO?aH`z4V2+kxgH5pYD5)wCh75JqQY)jIPN=U6 z+qi8cGiOtXG2tXm;_CfpH9ESCz#i5B(42}rBJJF$jh<1sbpj^8&L;gzGHb8M{of+} zzF^8VgML2O9nxBW7AvdEt90vp+#kZxWf@A)o9f9}vKJy9NDBjBW zSt=Hcs=YWCwnfY1UYx*+msp{g!w0HC<_SM!VL1(I2PE?CS}r(eh?{I)mQixmo5^p# zV?2R!R@3GV6hwTCrfHiK#3Orj>I!GS2kYhk1S;aFBD_}u2v;0HYFq}Iz1Z(I4oca4 zxquja8$+8JW_EagDHf$a1OTk5S97umGSDaj)gH=fLs9>_=XvVj^Xj9a#gLdk=&3tl zfmK9MNnIX9v{?%xdw7568 zNrZ|roYs(vC4pHB5RJ8>)^*OuyNC>x7ad)tB_}3SgQ96+-JT^Qi<`xi=)_=$Skwv~ zdqeT9Pa`LYvCAn&rMa2aCDV(TMI#PA5g#RtV|CWpgDYRA^|55LLN^uNh*gOU>Z=a06qJ;$C9z8;n-Pq=qZnc1zUwJ@t)L;&NN+E5m zRkQ(SeM8=l-aoAKGKD>!@?mWTW&~)uF2PYUJ;tB^my`r9n|Ly~0c%diYzqs9W#FTjy?h&X3TnH zXqA{QI82sdjPO->f=^K^f>N`+B`q9&rN0bOXO79S&a9XX8zund(kW7O76f4dcWhIu zER`XSMSFbSL>b;Rp#`CuGJ&p$s~G|76){d?xSA5wVg##_O0DrmyEYppyBr%fyWbbv zp`K84JwRNP$d-pJ!Qk|(RMr?*!wi1if-9G#0p>>1QXKXWFy)eB3ai)l3601q8!9JC zvU#ZWWDNKq9g6fYs?JQ)Q4C_cgTy3FhgKb8s&m)DdmL5zhNK#8wWg!J*7G7Qhe9VU zha?^AQTDpYcuN!B+#1dE*X{<#!M%zfUQbj=zLE{dW0XeQ7-oIsGY6RbkP2re@Q{}r_$iiH0xU%iN*ST`A)-EH6eaZB$GA#v)cLi z*MpA(3bYk$oBDKAzu^kJoSUsDd|856DApz={3u8sbQV@JnRkp2nC|)m;#T=DvIL-O zI4vh;g7824l}*`_p@MT4+d`JZ2%6NQh=N9bmgJ#q!hK@_<`HQq3}Z8Ij>3%~<*= zcv=!oT#5xmeGI92lqm9sGVE%#X$ls;St|F#u!?5Y7syhx6q#MVRa&lBmmn%$C0QzU z);*ldgwwCmzM3uglr}!Z2G+?& zf%Dpo&mD%2ZcNFiN-Z0f;c_Q;A%f@>26f?{d1kxIJD}LxsQkB47SAdwinfMILZdN3 zfj^HmTzS3Ku5BxY>ANutS8WPQ-G>v4^_Qndy==P3pDm+Xc?>rUHl-4+^%Sp5atOja z2oP}ftw-rqnb}+khR3CrRg^ibi6?QYk1*i^;kQGirQ=uB9Sd1NTfT-Rbv;hqnY4neE5H1YUrjS2m+2&@uXiAo- zrKUX|Ohg7(6F(AoP~tj;NZlV#xsfo-5reuQHB$&EIAhyZk;bL;k9ouDmJNBAun;H& zn;Of1z_Qj`x&M;5X;{s~iGzBQTY^kv-k{ksbE*Dl%Qf%N@hQCfY~iUw!=F-*$cpf2 z3wix|aLBV0b;W@z^%7S{>9Z^T^fLOI68_;l@+Qzaxo`nAI8emTV@rRhEKZ z?*z_{oGdI~R*#<2{bkz$G~^Qef}$*4OYTgtL$e9q!FY7EqxJ2`zk6SQc}M(k(_MaV zSLJnTXw&@djco1~a(vhBl^&w=$fa9{Sru>7g8SHahv$&Bl(D@(Zwxo_3r=;VH|uc5 zi1Ny)J!<(KN-EcQ(xlw%PNwK8U>4$9nVOhj(y0l9X^vP1TA>r_7WtSExIOsz`nDOP zs}d>Vxb2Vo2e5x8p(n~Y5ggAyvib>d)6?)|E@{FIz?G3PVGLf7-;BxaP;c?7ddH$z zA+{~k^V=bZuXafOv!RPsE1GrR3J2TH9uB=Z67gok+u`V#}BR86hB1xl}H4v`F+mRfr zYhortD%@IGfh!JB(NUNSDh+qDz?4ztEgCz&bIG-Wg7w-ua4ChgQR_c+z8dT3<1?uX z*G(DKy_LTl*Ea!%v!RhpCXW1WJO6F`bgS-SB;Xw9#! z<*K}=#wVu9$`Yo|e!z-CPYH!nj7s9dEPr-E`DXUBu0n!xX~&|%#G=BeM?X@shQQMf zMvr2!y7p_gD5-!Lnm|a@z8Of^EKboZsTMk%5VsJEm>VsJ4W7Kv{<|#4f-qDE$D-W>gWT%z-!qXnDHhOvLk=?^a1*|0j z{pW{M0{#1VcR5;F!!fIlLVNh_Gj zbnW(_j?0c2q$EHIi@fSMR{OUKBcLr{Y&$hrM8XhPByyZaXy|dd&{hYQRJ9@Fn%h3p7*VQolBIV@Eq`=y%5BU~3RPa^$a?ixp^cCg z+}Q*X+CW9~TL29@OOng(#OAOd!)e$d%sr}^KBJ-?-X&|4HTmtemxmp?cT3uA?md4% zT8yZ0U;6Rg6JHy3fJae{6TMGS?ZUX6+gGTT{Q{)SI85$5FD{g-eR%O0KMpWPY`4@O zx!hen1*8^E(*}{m^V_?}(b5k3hYo=T+$&M32+B`}81~KKZhY;2H{7O-M@vbCzuX0n zW-&HXeyr1%I3$@ns-V1~Lb@wIpkmx|8I~ob1Of7i6BTNysEwI}=!nU%q7(V_^+d*G z7G;07m(CRTJup!`cdYi93r^+LY+`M*>aMuHJm(A8_O8C#A*$!Xvddgpjx5)?_EB*q zgE8o5O>e~9IiSC@WtZpF{4Bj2J5eZ>uUzY%TgWF7wdDE!fSQIAWCP)V{;HsU3ap?4 znRsiiDbtN7i9hapO;(|Ew>Ip2TZSvK9Z^N21%J?OiA_&eP1{(Pu_=%JjKy|HOardq ze?zK^K zA%sjF64*Wufad%H<) z^|t>e*h+Z1#l=5wHexzt9HNDNXgM=-OPWKd^5p!~%SIl>Fo&7BvNpbf8{NXmH)o{r zO=aBJ;meX1^{O%q;kqdw*5k!Y7%t_30 zy{nGRVc&5qt?dBwLs+^Sfp;f`YVMSB#C>z^a9@fpZ!xb|b-JEz1LBX7ci)V@W+kvQ89KWA0T~Lj$aCcfW#nD5bt&Y_< z-q{4ZXDqVg?|0o)j1%l0^_it0WF*LCn-+)c!2y5yS7aZIN$>0LqNnkujV*YVes(v$ zY@_-!Q;!ZyJ}Bg|G-~w@or&u0RO?vlt5*9~yeoPV_UWrO2J54b4#{D(D>jF(R88u2 zo#B^@iF_%S>{iXSol8jpmsZuJ?+;epg>k=$d`?GSegAVp3n$`GVDvK${N*#L_1`44 z{w0fL{2%)0|E+qgZtjX}itZz^KJt4Y;*8uSK}Ft38+3>j|K(PxIXXR-t4VopXo#9# zt|F{LWr-?34y`$nLBVV_*UEgA6AUI65dYIbqpNq9cl&uLJ0~L}<=ESlOm?Y-S@L*d z<7vt}`)TW#f%Rp$Q}6@3=j$7Tze@_uZO@aMn<|si{?S}~maII`VTjs&?}jQ4_cut9$)PEqMukwoXobzaKx^MV z2fQwl+;LSZ$qy%Tys0oo^K=jOw$!YwCv^ei4NBVauL)tN%=wz9M{uf{IB(BxK|lT*pFkmNK_1tV`nb%jH=a0~VNq2RCKY(rG7jz!-D^k)Ec)yS%17pE#o6&eY+ z^qN(hQT$}5F(=4lgNQhlxj?nB4N6ntUY6(?+R#B?W3hY_a*)hnr4PA|vJ<6p`K3Z5Hy z{{8(|ux~NLUW=!?9Qe&WXMTAkQnLXg(g=I@(VG3{HE13OaUT|DljyWXPs2FE@?`iU z4GQlM&Q=T<4&v@Fe<+TuXiZQT3G~vZ&^POfmI1K2h6t4eD}Gk5XFGpbj1n_g*{qmD6Xy z`6Vv|lLZtLmrnv*{Q%xxtcWVj3K4M%$bdBk_a&ar{{GWyu#ljM;dII;*jP;QH z#+^o-A4np{@|Mz+LphTD0`FTyxYq#wY)*&Ls5o{0z9yg2K+K7ZN>j1>N&;r+Z`vI| zDzG1LJZ+sE?m?>x{5LJx^)g&pGEpY=fQ-4}{x=ru;}FL$inHemOg%|R*ZXPodU}Kh zFEd5#+8rGq$Y<_?k-}r5zgQ3jRV=ooHiF|@z_#D4pKVEmn5CGV(9VKCyG|sT9nc=U zEoT67R`C->KY8Wp-fEcjjFm^;Cg(ls|*ABVHq8clBE(;~K^b+S>6uj70g? z&{XQ5U&!Z$SO7zfP+y^8XBbiu*Cv-yJG|l-oe*!s5$@Lh_KpxYL2sx`B|V=dETN>5K+C+CU~a_3cI8{vbu$TNVdGf15*>D zz@f{zIlorkY>TRh7mKuAlN9A0>N>SV`X)+bEHms=mfYTMWt_AJtz_h+JMmrgH?mZt zm=lfdF`t^J*XLg7v+iS)XZROygK=CS@CvUaJo&w2W!Wb@aa?~Drtf`JV^cCMjngVZ zv&xaIBEo8EYWuML+vxCpjjY^s1-ahXJzAV6hTw%ZIy!FjI}aJ+{rE&u#>rs)vzuxz z+$5z=7W?zH2>Eb32dvgHYZtCAf!=OLY-pb4>Ae79rd68E2LkVPj-|jFeyqtBCCwiW zkB@kO_(3wFq)7qwV}bA=zD!*@UhT`geq}ITo%@O(Z5Y80nEX~;0-8kO{oB6|(4fQh z);73T!>3@{ZobPwRv*W?7m0Ml9GmJBCJd&6E?hdj9lV= z4flNfsc(J*DyPv?RCOx!MSvk(M952PJ-G|JeVxWVjN~SNS6n-_Ge3Q;TGE;EQvZg86%wZ`MB zSMQua(i*R8a75!6$QRO^(o7sGoomb+Y{OMy;m~Oa`;P9Yqo>?bJAhqXxLr7_3g_n>f#UVtxG!^F#1+y@os6x(sg z^28bsQ@8rw%Gxk-stAEPRbv^}5sLe=VMbkc@Jjimqjvmd!3E7+QnL>|(^3!R} zD-l1l7*Amu@j+PWLGHXXaFG0Ct2Q=}5YNUxEQHCAU7gA$sSC<5OGylNnQUa>>l%sM zyu}z6i&({U@x^hln**o6r2s-(C-L50tQvz|zHTqW!ir?w&V23tuYEDJVV#5pE|OJu z7^R!A$iM$YCe?8n67l*J-okwfZ+ZTkGvZ)tVPfR;|3gyFjF)8V zyXXN=!*bpyRg9#~Bg1+UDYCt0 ztp4&?t1X0q>uz;ann$OrZs{5*r`(oNvw=$7O#rD|Wuv*wIi)4b zGtq4%BX+kkagv3F9Id6~-c+1&?zny%w5j&nk9SQfo0k4LhdSU_kWGW7axkfpgR`8* z!?UTG*Zi_baA1^0eda8S|@&F z{)Rad0kiLjB|=}XFJhD(S3ssKlveFFmkN{Vl^_nb!o5M!RC=m)V&v2%e?ZoRC@h3> zJ(?pvToFd`*Zc@HFPL#=otWKwtuuQ_dT-Hr{S%pQX<6dqVJ8;f(o)4~VM_kEQkMR+ zs1SCVi~k>M`u1u2xc}>#D!V&6nOOh-E$O&SzYrjJdZpaDv1!R-QGA141WjQe2s0J~ zQ;AXG)F+K#K8_5HVqRoRM%^EduqOnS(j2)|ctA6Q^=|s_WJYU;Z%5bHp08HPL`YF2 zR)Ad1z{zh`=sDs^&V}J z%$Z$!jd7BY5AkT?j`eqMs%!Gm@T8)4w3GYEX~IwgE~`d|@T{WYHkudy(47brgHXx& zBL1yFG6!!!VOSmDxBpefy2{L_u5yTwja&HA!mYA#wg#bc-m%~8aRR|~AvMnind@zs zy>wkShe5&*un^zvSOdlVu%kHsEo>@puMQ`b1}(|)l~E{5)f7gC=E$fP(FC2=F<^|A zxeIm?{EE!3sO!Gr7e{w)Dx(uU#3WrFZ>ibmKSQ1tY?*-Nh1TDHLe+k*;{Rp!Bmd_m zb#^kh`Y*8l|9Cz2e{;RL%_lg{#^Ar+NH|3z*Zye>!alpt{z;4dFAw^^H!6ING*EFc z_yqhr8d!;%nHX9AKhFQZBGrSzfzYCi%C!(Q5*~hX>)0N`vbhZ@N|i;_972WSx*>LH z87?en(;2_`{_JHF`Sv6Wlps;dCcj+8IJ8ca6`DsOQCMb3n# z3)_w%FuJ3>fjeOOtWyq)ag|PmgQbC-s}KRHG~enBcIwqIiGW8R8jFeBNY9|YswRY5 zjGUxdGgUD26wOpwM#8a!Nuqg68*dG@VM~SbOroL_On0N6QdT9?)NeB3@0FCC?Z|E0 z6TPZj(AsPtwCw>*{eDEE}Gby>0q{*lI+g2e&(YQrsY&uGM{O~}(oM@YWmb*F zA0^rr5~UD^qmNljq$F#ARXRZ1igP`MQx4aS6*MS;Ot(1L5jF2NJ;de!NujUYg$dr# z=TEL_zTj2@>ZZN(NYCeVX2==~=aT)R30gETO{G&GM4XN<+!&W&(WcDP%oL8PyIVUC zs5AvMgh6qr-2?^unB@mXK*Dbil^y-GTC+>&N5HkzXtozVf93m~xOUHn8`HpX=$_v2 z61H;Z1qK9o;>->tb8y%#4H)765W4E>TQ1o0PFj)uTOPEvv&}%(_mG0ISmyhnQV33Z$#&yd{ zc{>8V8XK$3u8}04CmAQ#I@XvtmB*s4t8va?-IY4@CN>;)mLb_4!&P3XSw4pA_NzDb zORn!blT-aHk1%Jpi>T~oGLuh{DB)JIGZ9KOsciWs2N7mM1JWM+lna4vkDL?Q)z_Ct z`!mi0jtr+4*L&N7jk&LodVO#6?_qRGVaucqVB8*us6i3BTa^^EI0x%EREQSXV@f!lak6Wf1cNZ8>*artIJ(ADO*=<-an`3zB4d*oO*8D1K!f z*A@P1bZCNtU=p!742MrAj%&5v%Xp_dSX@4YCw%F|%Dk=u|1BOmo)HsVz)nD5USa zR~??e61sO(;PR)iaxK{M%QM_rIua9C^4ppVS$qCT9j2%?*em?`4Z;4@>I(c%M&#cH z>4}*;ej<4cKkbCAjjDsyKS8rIm90O)Jjgyxj5^venBx&7B!xLmzxW3jhj7sR(^3Fz z84EY|p1NauwXUr;FfZjdaAfh%ivyp+^!jBjJuAaKa!yCq=?T_)R!>16?{~p)FQ3LDoMyG%hL#pR!f@P%*;#90rs_y z@9}@r1BmM-SJ#DeuqCQk=J?ixDSwL*wh|G#us;dd{H}3*-Y7Tv5m=bQJMcH+_S`zVtf;!0kt*(zwJ zs+kedTm!A}cMiM!qv(c$o5K%}Yd0|nOd0iLjus&;s0Acvoi-PFrWm?+q9f^FslxGi z6ywB`QpL$rJzWDg(4)C4+!2cLE}UPCTBLa*_=c#*$b2PWrRN46$y~yST3a2$7hEH= zNjux+wna^AzQ=KEa_5#9Ph=G1{S0#hh1L3hQ`@HrVnCx{!fw_a0N5xV(iPdKZ-HOM za)LdgK}1ww*C_>V7hbQnTzjURJL`S%`6nTHcgS+dB6b_;PY1FsrdE8(2K6FN>37!62j_cBlui{jO^$dPkGHV>pXvW0EiOA zqW`YaSUBWg_v^Y5tPJfWLcLpsA8T zG)!x>pKMpt!lv3&KV!-um= zKCir6`bEL_LCFx4Z5bAFXW$g3Cq`?Q%)3q0r852XI*Der*JNuKUZ`C{cCuu8R8nkt z%pnF>R$uY8L+D!V{s^9>IC+bmt<05h**>49R*#vpM*4i0qRB2uPbg8{{s#9yC;Z18 zD7|4m<9qneQ84uX|J&f-g8a|nFKFt34@Bt{CU`v(SYbbn95Q67*)_Esl_;v291s=9 z+#2F2apZU4Tq=x+?V}CjwD(P=U~d<=mfEFuyPB`Ey82V9G#Sk8H_Ob_RnP3s?)S_3 zr%}Pb?;lt_)Nf>@zX~D~TBr;-LS<1I##8z`;0ZCvI_QbXNh8Iv)$LS=*gHr;}dgb=w5$3k2la1keIm|=7<-JD>)U%=Avl0Vj@+&vxn zt-)`vJxJr88D&!}2^{GPXc^nmRf#}nb$4MMkBA21GzB`-Or`-3lq^O^svO7Vs~FdM zv`NvzyG+0T!P8l_&8gH|pzE{N(gv_tgDU7SWeiI-iHC#0Ai%Ixn4&nt{5y3(GQs)i z&uA;~_0shP$0Wh0VooIeyC|lak__#KVJfxa7*mYmZ22@(<^W}FdKjd*U1CqSjNKW% z*z$5$=t^+;Ui=MoDW~A7;)Mj%ibX1_p4gu>RC}Z_pl`U*{_z@+HN?AF{_W z?M_X@o%w8fgFIJ$fIzBeK=v#*`mtY$HC3tqw7q^GCT!P$I%=2N4FY7j9nG8aIm$c9 zeKTxVKN!UJ{#W)zxW|Q^K!3s;(*7Gbn;e@pQBCDS(I|Y0euK#dSQ_W^)sv5pa%<^o zyu}3d?Lx`)3-n5Sy9r#`I{+t6x%I%G(iewGbvor&I^{lhu-!#}*Q3^itvY(^UWXgvthH52zLy&T+B)Pw;5>4D6>74 zO_EBS)>l!zLTVkX@NDqyN2cXTwsUVao7$HcqV2%t$YzdAC&T)dwzExa3*kt9d(}al zA~M}=%2NVNUjZiO7c>04YH)sRelXJYpWSn^aC$|Ji|E13a^-v2MB!Nc*b+=KY7MCm zqIteKfNkONq}uM;PB?vvgQvfKLPMB8u5+Am=d#>g+o&Ysb>dX9EC8q?D$pJH!MTAqa=DS5$cb+;hEvjwVfF{4;M{5U&^_+r zvZdu_rildI!*|*A$TzJ&apQWV@p{!W`=?t(o0{?9y&vM)V)ycGSlI3`;ps(vf2PUq zX745#`cmT*ra7XECC0gKkpu2eyhFEUb?;4@X7weEnLjXj_F~?OzL1U1L0|s6M+kIhmi%`n5vvDALMagi4`wMc=JV{XiO+^ z?s9i7;GgrRW{Mx)d7rj)?(;|b-`iBNPqdwtt%32se@?w4<^KU&585_kZ=`Wy^oLu9 z?DQAh5z%q;UkP48jgMFHTf#mj?#z|=w= z(q6~17Vn}P)J3M?O)x))%a5+>TFW3No~TgP;f}K$#icBh;rSS+R|}l鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 0 HcmV?d00001 diff --git a/monologue/gradle/wrapper/gradle-wrapper.properties b/monologue/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c5c2706 --- /dev/null +++ b/monologue/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=permwrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=permwrapper/dists diff --git a/monologue/gradlew b/monologue/gradlew new file mode 100644 index 0000000..1aa94a4 --- /dev/null +++ b/monologue/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/monologue/gradlew.bat b/monologue/gradlew.bat new file mode 100644 index 0000000..6689b85 --- /dev/null +++ b/monologue/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/monologue/settings.gradle b/monologue/settings.gradle new file mode 100644 index 0000000..3e30f84 --- /dev/null +++ b/monologue/settings.gradle @@ -0,0 +1,30 @@ +import org.gradle.internal.os.OperatingSystem + +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + String frcYear = '2024' + File frcHome + if (OperatingSystem.current().isWindows()) { + String publicFolder = System.getenv('PUBLIC') + if (publicFolder == null) { + publicFolder = "C:\\Users\\Public" + } + def homeRoot = new File(publicFolder, "wpilib") + frcHome = new File(homeRoot, frcYear) + } else { + def userFolder = System.getProperty("user.home") + def homeRoot = new File(userFolder, "wpilib") + frcHome = new File(homeRoot, frcYear) + } + def frcHomeMaven = new File(frcHome, 'maven') + maven { + name 'frcHome' + url frcHomeMaven + } + } +} + +Properties props = System.getProperties(); +props.setProperty("org.gradle.internal.native.headers.unresolved.dependencies.ignore", "true"); diff --git a/monologue/src/generate/geomTypes.json b/monologue/src/generate/geomTypes.json new file mode 100644 index 0000000..46fafaf --- /dev/null +++ b/monologue/src/generate/geomTypes.json @@ -0,0 +1,26 @@ +[ + { + "TypeName": "Translation2d" + }, + { + "TypeName": "Translation3d" + }, + { + "TypeName": "Rotation2d" + }, + { + "TypeName": "Rotation3d" + }, + { + "TypeName": "Pose2d" + }, + { + "TypeName": "Pose3d" + }, + { + "TypeName": "Transform2d" + }, + { + "TypeName": "Transform3d" + } +] diff --git a/monologue/src/generate/java/DataLogger.java.jinja b/monologue/src/generate/java/DataLogger.java.jinja new file mode 100644 index 0000000..51e1891 --- /dev/null +++ b/monologue/src/generate/java/DataLogger.java.jinja @@ -0,0 +1,132 @@ +package monologue; + + +{%for t in geomTypes%} +import edu.wpi.first.math.geometry.{{t.TypeName}}; +{%endfor%} +import edu.wpi.first.networktables.NetworkTable; +import edu.wpi.first.networktables.NetworkTableInstance; +import edu.wpi.first.networktables.NTSendable; +import edu.wpi.first.wpilibj.smartdashboard.SendableBuilderImpl; +import edu.wpi.first.util.datalog.*; +import edu.wpi.first.util.sendable.Sendable; +import edu.wpi.first.wpilibj.DataLogManager; +import monologue.DataLogSendableBuilder; +import java.util.function.Supplier; +import monologue.util.GeomPacker; +import java.util.function.*; +import edu.wpi.first.util.function.FloatSupplier; +import edu.wpi.first.util.struct.Struct; + +public class DataLogger extends GenericLogger { + public DataLogger(){super(); + DataLogManager.logNetworkTables(false); + log = DataLogManager.getLog(); + }; + private DataLog log; + + {%for t in types%} + public void put(String entryName, {{t.java.ValueType}} value) { + {%if t.TypeName == 'IntegerArray'%} + long[] array = new long[value.length]; + for (int i = 0; i < value.length; i++) { + array[i] = (long) value[i]; + } + new {{t.java.EntryName}}LogEntry(log, entryName).append(array); + {%else%} + new {{t.java.EntryName}}LogEntry(log, entryName).append(value); + {%endif%} + } + + public void add{{t.TypeName}}(String entryName, {{t.java.Supplier}} valueSupplier, int level) { + var entry = new {{t.java.EntryName}}LogEntry(log, entryName); + {%if t.TypeName == 'IntegerArray'%} + map.put(entryName, field((timestamp)->{ + int[] value = valueSupplier.get(); + long[] array = new long[value.length]; + for (int i = 0; i < value.length; i++) { + array[i] = (long) value[i]; + } + entry.append(array, timestamp); + }, ()->{}, level)); + {%else%} + map.put(entryName, field((timestamp)->entry.append(valueSupplier.get(), timestamp), ()->{}, level)); + {%endif%} + } + @Override + public void add{{t.TypeName}}(String entryName, {{t.java.Supplier}} valueSupplier) { + add{{t.TypeName}}(entryName, valueSupplier, 0); + } + {%endfor%} + + public void addNetworkTable(NetworkTable table) { + NetworkTableInstance.getDefault() + .startEntryDataLog(log, table.getPath(), table.getPath()); + } + + public void addNetworkTable(NetworkTable table, String dlPath) { + NetworkTableInstance.getDefault() + .startEntryDataLog(log, table.getPath(), dlPath); + } + + public void addSendable(String path, Sendable sendable) { + System.out.println("logging regular sendable at " + path); + var builder = new DataLogSendableBuilder(path); + sendable.initSendable(builder); + sendables.add(builder); + } + + public void addSendable(String path, NTSendable sendable) { + System.out.println("logging ntsendable at " + path); + var table = NetworkTableInstance.getDefault().getTable(path); + var builder = new SendableBuilderImpl(); + builder.setTable(table); + sendable.initSendable(builder); + builder.startListeners(); + table.getEntry(".controllable").setBoolean(false); + sendables.add(builder); + addNetworkTable(table, path); + } + + public void addStruct(String entryName, Struct struct, Supplier valueSupplier, int level) { + var entry = StructLogEntry.create(log, entryName, struct); + map.put(entryName, field((timestamp->entry.append(valueSupplier.get(), timestamp)), ()->{}, level)); + } + + public void putStruct(String entryName, Struct struct, R value) { + StructLogEntry.create(log, entryName, struct).append(value); + } + + public void startLog() { + log = DataLogManager.getLog(); + } + + public void helper(Supplier supplier, DataType type, String path, boolean oneShot, int level) { + switch (type) { + {%for t in types%} + + case {{t.TypeName}}: + if (oneShot) { + put(path, ({{t.java.ValueType}}) supplier.{{t.java.SupplierGet}}()); + } else { + add{{t.TypeName}}(path, () -> ({{t.java.ValueType}}) supplier.{{t.java.SupplierGet}}(), level); + } + break; + {%endfor%} + case Sendable: + addSendable(path, (Sendable) supplier.get()); + break; + {%for t in geomTypes%} + case {{t.TypeName}}: + if (oneShot) { + put(path, ({{t.TypeName}}) supplier.get()); + } else { + add{{t.TypeName}}(path, ()->({{t.TypeName}}) supplier.get(), level); + } + break; + {%endfor%} + default: + throw new IllegalArgumentException("Invalid data type"); + } + } +} \ No newline at end of file diff --git a/monologue/src/generate/java/DataType.java.jinja b/monologue/src/generate/java/DataType.java.jinja new file mode 100644 index 0000000..d53d19c --- /dev/null +++ b/monologue/src/generate/java/DataType.java.jinja @@ -0,0 +1,132 @@ +package monologue; + +{%for t in geomTypes%} +import edu.wpi.first.math.geometry.{{t.TypeName}}; +{%endfor%} +import edu.wpi.first.util.sendable.Sendable; +import edu.wpi.first.networktables.NTSendable; +public enum DataType { + {%for t in types%} + {{t.TypeName}}, + {%endfor%} + {%for t in geomTypes%} + {{t.TypeName}}, + {%endfor%} + Sendable, + NTSendable; + + + public static DataType fromClass(Class clazz) throws IllegalArgumentException { + // if clazz has NTSendable interface + for (Class cls : clazz.getInterfaces()) { + if (cls.equals(NTSendable.class)) { + return NTSendable; + } + } + // if clazz does not have NTSendable, but does have Sendable + for (Class cls : clazz.getInterfaces()) { + if (cls.equals(Sendable.class)) { + return Sendable; + } + } + clazz = complexFromPrim(clazz); + {%for t in types%} + {%if t.java.WrapValueType is defined%} + if (clazz.equals({{t.java.WrapValueType}}.class)) { + {%else%} + if (clazz.equals({{t.java.ValueType}}.class)) { + {%endif%} + return {{t.TypeName}}; + } + {%endfor%} + {%for t in geomTypes%} + if (clazz.equals({{t.TypeName}}.class)) { + return {{t.TypeName}}; + } else + {%endfor%} + // if (clazz.equals(Float.class)) { + // return FloatArray; + // } else if (clazz.equals(Boolean.class)) { + // return Boolean; + // } else if (clazz.equals(String.class)) { + // return String; + // } else if (clazz.equals(Integer.class)) { + // return Integer; + // } else if (clazz.equals(Byte[].class)) { + // return Raw; + // } else if (clazz.equals(Double[].class)) { + // return DoubleArray; + // } else if (clazz.equals(Float[].class)) { + // return FloatArray; + // } else if (clazz.equals(Boolean[].class)) { + // return BooleanArray; + // } else if (clazz.equals(String[].class)) { + // return StringArray; + // } else if (clazz.equals(Integer[].class)) { + // return IntegerArray; + // } else if (clazz.equals(Translation2d.class)) { + // return Translation2d; + + /* } else */ + if (NTSendable.class.isAssignableFrom(clazz)) { + return NTSendable; + } else if (Sendable.class.isAssignableFrom(clazz)) { + return Sendable; + } else { + throw new IllegalArgumentException("Invalid datatype"); + } + } + + private static Class complexFromPrim(Class clazz) { + // if (clazz.equals(double.class)) { + // return Double.class; + // } else if (clazz.equals(float.class)) { + // return Float.class; + // } else if (clazz.equals(boolean.class)) { + // return Boolean.class; + // } else if (clazz.equals(String.class)) { + // return String.class; + // } else if (clazz.equals(int.class)) { + // return Integer.class; + // } else if (clazz.equals(byte[].class)) { + // return Byte[].class; + // } else if (clazz.equals(double[].class)) { + // return Double[].class; + // } else if (clazz.equals(float[].class)) { + // return Float[].class; + // } else if (clazz.equals(boolean[].class)) { + // return Boolean[].class; + // } else if (clazz.equals(String[].class)) { + // return String[].class; + // } else if (clazz.equals(int[].class)) { + // return Integer[].class; + // } else if (clazz.equals(Translation2d.class)) { + // return Translation2d.class; + // } else { + // return clazz; + // } + + {%for t in types%} + + if (clazz.equals({{t.java.ValueType}}.class)) { + + {%if t.java.WrapValueType is defined%} + return {{t.java.WrapValueType}}.class; + {%else%} + return {{t.java.ValueType}}.class; + {%endif%} + } else + {%endfor%} + if (clazz.equals(int.class)) { + return Integer.class; + } else + {%for t in geomTypes%} + if (clazz.equals({{t.TypeName}}.class)) { + return {{t.TypeName}}.class; + } else + {%endfor%} + { + return clazz; + } + } +} diff --git a/monologue/src/generate/java/GenericLogger.java.jinja b/monologue/src/generate/java/GenericLogger.java.jinja new file mode 100644 index 0000000..f8a50bd --- /dev/null +++ b/monologue/src/generate/java/GenericLogger.java.jinja @@ -0,0 +1,147 @@ +package monologue; + +{%for t in geomTypes%} +import edu.wpi.first.math.geometry.{{t.TypeName}}; +{%endfor%} +import edu.wpi.first.networktables.NTSendable; +import edu.wpi.first.networktables.NetworkTable; +import edu.wpi.first.networktables.NetworkTableInstance; +import edu.wpi.first.util.datalog.*; +import edu.wpi.first.networktables.*; +import edu.wpi.first.util.struct.Struct; +import edu.wpi.first.util.sendable.Sendable; +import edu.wpi.first.util.sendable.SendableBuilder; +import edu.wpi.first.wpilibj.DataLogManager; +import edu.wpi.first.wpilibj.smartdashboard.SendableBuilderImpl; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; +import java.util.function.*; +import edu.wpi.first.util.function.FloatSupplier; + +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.function.Supplier; + +import edu.wpi.first.wpilibj.Timer; +import monologue.util.GeomPacker; + +public abstract class GenericLogger { + public interface LogRunnable extends LongConsumer { + void close(); + } + protected GenericLogger() {} + + protected int logLevel; + + protected LogRunnable field(LongConsumer run, Runnable close) { + return new LogRunnable() { + @Override + public void accept(long timestamp) { + run.accept(timestamp); + } + @Override + public void close() { + close.run(); + } + }; + } + + protected LogRunnable field(LongConsumer run, Runnable close, int level) { + IntSupplier logLevelSupplier = this::getLevel; + return new LogRunnable() { + @Override + public void accept(long timestamp) { + if (logLevelSupplier.getAsInt() <= level) { + run.accept(timestamp); + } + } + @Override + public void close() { + close.run(); + } + }; + } + protected final Map map = new HashMap<>(); + protected final Collection sendables = new LinkedHashSet<>(); + + {%for t in types%} + public void put(String entryName, {{t.java.ValueType}} value) {} + + public void add{{t.TypeName}}(String entryName, {{t.java.Supplier}} valueSupplier, int level) {} + + public void add{{t.TypeName}}(String entryName, {{t.java.Supplier}} valueSupplier) { + add{{t.TypeName}}(entryName, valueSupplier, 0); + } + {%endfor%} + + {%for t in geomTypes%} + public void put(String entryName, {{t.TypeName}} value) { + putStruct(entryName, {{t.TypeName}}.struct, value); + } + public void add{{t.TypeName}}(String entryName, Supplier<{{t.TypeName}}> valueSupplier, int level) { + addStruct(entryName, {{t.TypeName}}.struct, valueSupplier, level); + } + public void add{{t.TypeName}}(String entryName, Supplier<{{t.TypeName}}> valueSupplier) { + add{{t.TypeName}}(entryName, valueSupplier, 0); + } + {%endfor%} + + public void addStruct(String entryName, Struct struct, Supplier valueSupplier, int level) {} + public void putStruct(String entryName, Struct struct, R value) {} + + // public void put(String entryName, Translation2d value) { + // var topic = table.getDoubleArrayTopic(entryName); + // topic.setRetained(true); + // var publisher = new Translation2dPublisher(topic); + // publisher.set(value); + // publisher.close(); + // } + + public void addNetworkTable(NetworkTable table) {}; + + public void addNetworkTable(NetworkTable table, String dlPath) {}; + + public void addSendable(String pathPrefix, String name, Sendable sendable) { + String prefix; + if (!pathPrefix.endsWith("/")) { + prefix = pathPrefix + "/" + name + "/"; + } else { + prefix = pathPrefix + name + "/"; + } + addSendable(prefix, sendable); + } + + public void addSendable(String path, Sendable sendable) {}; + + public void addSendable(String pathPrefix, String name, NTSendable sendable) { + String prefix; + if (!pathPrefix.endsWith("/")) { + prefix = pathPrefix + "/" + name + "/"; + } else { + prefix = pathPrefix + name + "/"; + } + addSendable(prefix, sendable); + } + + public void addSendable(String path, NTSendable sendable) { + addSendable(path, (Sendable) sendable); + }; + + public void setLevel(int level) { + logLevel = level; + } + + public int getLevel() { + return logLevel; + } + public void update() { + long timestamp = (long) (Timer.getFPGATimestamp() * 1e6); + for (Map.Entry entry : map.entrySet()) { + var key = entry.getKey(); + var val = entry.getValue(); + val.accept(timestamp); + } + sendables.forEach(SendableBuilder::update); + } +} \ No newline at end of file diff --git a/monologue/src/generate/java/Logged.java.jinja b/monologue/src/generate/java/Logged.java.jinja new file mode 100644 index 0000000..0935083 --- /dev/null +++ b/monologue/src/generate/java/Logged.java.jinja @@ -0,0 +1,24 @@ +package monologue; + +{%for t in geomTypes%} import edu.wpi.first.math.geometry.{{t.TypeName}}; {%endfor%} + +public interface Logged { + public default String getPath() { + return ""; + } + public default String getFullPath() { + return Monologue.loggedRegistry.getOrDefault(this, "notfound"); + } + {%for t in types%} + public default void put(String key, {{t.java.ValueType}} value) { + Monologue.dataLogger.put(getFullPath() + "/" + key, value); + Monologue.ntLogger.put(getFullPath() + "/" + key, value); + } + {%endfor%} + {%for t in geomTypes%} + public default void put(String key, {{t.TypeName}} value) { + Monologue.dataLogger.put(getFullPath() + "/" + key, value); + Monologue.ntLogger.put(getFullPath() + "/" + key, value); + } + {%endfor%} +} diff --git a/monologue/src/generate/java/NTLogger.java.jinja b/monologue/src/generate/java/NTLogger.java.jinja new file mode 100644 index 0000000..ef8fb6b --- /dev/null +++ b/monologue/src/generate/java/NTLogger.java.jinja @@ -0,0 +1,166 @@ +package monologue; + + +{%for t in geomTypes%} +import edu.wpi.first.math.geometry.{{t.TypeName}}; +{%endfor%} +import edu.wpi.first.networktables.NTSendable; +import edu.wpi.first.networktables.NetworkTable; +import edu.wpi.first.networktables.NetworkTableInstance; +import edu.wpi.first.util.datalog.*; +import edu.wpi.first.networktables.*; +import edu.wpi.first.util.struct.Struct; +import edu.wpi.first.util.sendable.Sendable; +import edu.wpi.first.util.sendable.SendableBuilder; +import edu.wpi.first.wpilibj.DataLogManager; +import edu.wpi.first.wpilibj.smartdashboard.SendableBuilderImpl; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; +import java.util.function.*; +import edu.wpi.first.util.function.FloatSupplier; + +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.function.Supplier; + +import edu.wpi.first.wpilibj.Timer; + +public class NTLogger extends GenericLogger { + public NTLogger() {super();} + + private final NetworkTableInstance table = NetworkTableInstance.getDefault(); + + private final Map publishers = new HashMap(); + + {%for t in types%} + public void put(String entryName, {{t.java.ValueType}} value) { + var genericPublisher = publishers.get(entryName); + {{t.java.EntryName}}Publisher publisher = null; + if (genericPublisher == null){ + var topic = table.get{{t.java.EntryName}}Topic(entryName); + {%if t.TypeName == 'Raw'%} + publisher = topic.publish("raw"); + {%else%} + publisher = topic.publish();{%endif%} + publishers.put(entryName, publisher); + } else if (genericPublisher instanceof {{t.java.EntryName}}Publisher) { + publisher = ({{t.java.EntryName}}Publisher) genericPublisher; + } + if (publisher != null) { + {%if t.TypeName == 'IntegerArray'%} + long[] array = new long[value.length]; + for (int i = 0; i < value.length; i++) { + array[i] = (long) value[i]; + } + publisher.set(array); + {%else%} + publisher.set(value); + {%endif%} + } + } + + public void add{{t.TypeName}}(String entryName, {{t.java.Supplier}} valueSupplier, int level) { + var topic = table.get{{t.java.EntryName}}Topic(entryName); + {%if t.TypeName == 'Raw'%} + var publisher = topic.publish("raw"); + {%else%} + var publisher = topic.publish(); + {%endif%} + {%if t.TypeName == 'IntegerArray'%} + map.put(entryName, field((timestamp)->{ + int[] value = valueSupplier.get(); + long[] array = new long[value.length]; + for (int i = 0; i < value.length; i++) { + array[i] = (long) value[i]; + } + publisher.set(array, timestamp); + }, publisher::close, level)); + {%else%} + map.put(entryName, field((timestamp)->publisher.set(valueSupplier.get(), timestamp), publisher::close, level)); + {%endif%} + + } + + @Override + public void add{{t.TypeName}}(String entryName, {{t.java.Supplier}} valueSupplier) { + add{{t.TypeName}}(entryName, valueSupplier, 0); + } + {%endfor%} + + public void addStruct(String entryName, Struct struct, Supplier valueSupplier, int level) { + var topic = table.getStructTopic(entryName, struct); + var publisher = topic.publish(); + map.put(entryName, field((timestamp->publisher.set(valueSupplier.get(), timestamp)), publisher::close, level)); + } + + public void putStruct(String entryName, Struct struct, R value) { + var genericPublisher = publishers.get(entryName); + StructPublisher publisher = null; + if (genericPublisher == null){ + var topic = table.getStructTopic(entryName, struct); + publisher = topic.publish(); + publishers.put(entryName, publisher); + } else if (genericPublisher instanceof StructPublisher) { + publisher = (StructPublisher) genericPublisher; + } + if (publisher != null) { + publisher.set(value); + } + } + + // public void put(String entryName, Translation2d value) { + // var topic = table.getDoubleArrayTopic(entryName); + // topic.setRetained(true); + // var publisher = new Translation2dPublisher(topic); + // publisher.set(value); + // publisher.close(); + // } + + public void addNetworkTable(NetworkTable table) { + // NetworkTableInstance.getDefault() + // .startEntryDataLog(table, table.getPath(), table.getPath()); + } + + public void addNetworkTable(NetworkTable table, String dlPath) { + // NetworkTableInstance.getDefault() + // .startEntryDataLog(table, table.getPath(), dlPath); + } + + public void addSendable(String path, Sendable sendable) { + var builder = new SendableBuilderImpl(); + builder.setTable(table.getTable(path)); + sendable.initSendable(builder); + builder.startListeners(); + table.getTable(path).getEntry(".controllable").setBoolean(false); + sendables.add(builder); + } + + public void helper(Supplier supplier, DataType type, String path, boolean oneShot, int level) { + switch (type) { + {%for t in types%} + case {{t.TypeName}}: + if (oneShot) { + put(path, ({{t.java.ValueType}}) supplier.{{t.java.SupplierGet}}()); + } else { + add{{t.TypeName}}(path, () -> ({{t.java.ValueType}}) supplier.{{t.java.SupplierGet}}(), level); + } + break; + {%endfor%} + case Sendable: + addSendable(path, (Sendable) supplier.get()); + break; + {%for t in geomTypes%} + case {{t.TypeName}}: + if (oneShot) { + put(path, ({{t.TypeName}}) supplier.get()); + } else { + add{{t.TypeName}}(path, ()->({{t.TypeName}}) supplier.get(), level); + } + break; + {%endfor%} + default: + throw new IllegalArgumentException("Invalid data type"); + } + } +} \ No newline at end of file diff --git a/monologue/src/generate/types.json b/monologue/src/generate/types.json new file mode 100644 index 0000000..82dec4e --- /dev/null +++ b/monologue/src/generate/types.json @@ -0,0 +1,173 @@ +[ + { + "TypeName": "Boolean", + "TypeString": "\"boolean\"", + "java": { + "ValueType": "boolean", + "WrapValueType": "Boolean", + "Supplier": "Supplier", + "EmptyValue": "false", + "ConsumerFunctionPackage": "edu.wpi.first.util.function", + "FunctionTypePrefix": "Boolean", + "EntryName": "Boolean", + "SupplierGet" : "get" + } + }, + { + "TypeName": "Integer", + "TypeString": "\"int\"", + "java": { + "ValueType": "int", + "WrapValueType": "Integer", + "Supplier": "Supplier", + "EmptyValue": "0", + "FunctionTypePrefix": "Integer", + "EntryName": "Integer", + "SupplierGet" : "get" + } + }, + + { + "TypeName": "Long", + "TypeString": "\"int\"", + "java": { + "ValueType": "long", + "WrapValueType": "Long", + "Supplier": "Supplier", + "EmptyValue": "0", + "FunctionTypePrefix": "Long", + "EntryName": "Integer", + "SupplierGet" : "get" + } + }, + { + "TypeName": "Float", + "TypeString": "\"float\"", + "java": { + "ValueType": "float", + "WrapValueType": "Float", + "EmptyValue": "0", + "Supplier": "Supplier", + "ConsumerFunctionPackage": "edu.wpi.first.util.function", + "SupplierFunctionPackage": "edu.wpi.first.util.function", + "FunctionTypePrefix": "Float", + "EntryName": "Float", + "SupplierGet" : "get" + } + }, + { + "TypeName": "Double", + "TypeString": "\"double\"", + "java": { + "Supplier": "Supplier", + "WrapValueType": "Double", + "ValueType": "double", + "EmptyValue": "0", + "FunctionTypePrefix": "Double", + "EntryName": "Double", + "SupplierGet" : "get" + } + }, + { + "TypeName": "String", + "TypeString": "\"string\"", + + "java": { + "ValueType": "String", + "Supplier": "Supplier", + "EmptyValue": "\"\"", + "FunctionTypeSuffix": "", + "EntryName": "String", + "SupplierGet" : "get" + } + }, + { + "TypeName": "Raw", + "java": { + "Supplier": "Supplier", + "WrapValueType": "Byte[]", + "ValueType": "byte[]", + "EmptyValue": "new byte[] {}", + "FunctionTypeSuffix": "", + "EntryName": "Raw", + "SupplierGet" : "get" + } + }, + { + "TypeName": "BooleanArray", + "TypeString": "\"boolean[]\"", + "java": { + "Supplier": "Supplier", + "ValueType": "boolean[]", + "WrapValueType": "Boolean[]", + "EmptyValue": "new boolean[] {}", + "FunctionTypeSuffix": "", + "EntryName": "BooleanArray", + "SupplierGet" : "get" + } + }, + { + "TypeName": "IntegerArray", + "TypeString": "\"int[]\"", + "java": { + "Supplier": "Supplier", + "ValueType": "int[]", + "WrapValueType": "Integer[]", + "EmptyValue": "new int[] {}", + "FunctionTypeSuffix": "", + "EntryName": "IntegerArray", + "SupplierGet" : "get" + } + }, + { + "TypeName": "LongArray", + "TypeString": "\"long[]\"", + "java": { + "Supplier": "Supplier", + "ValueType": "long[]", + "WrapValueType": "Long[]", + "EmptyValue": "new long[] {}", + "FunctionTypeSuffix": "", + "EntryName": "IntegerArray", + "SupplierGet" : "get" + } + }, + { + "TypeName": "FloatArray", + "TypeString": "\"float[]\"", + "java": { + "Supplier": "Supplier", + "ValueType": "float[]", + "WrapValueType": "Float[]", + "EmptyValue": "new float[] {}", + "FunctionTypeSuffix": "", + "EntryName": "FloatArray", + "SupplierGet" : "get" + } + }, + { + "TypeName": "DoubleArray", + "TypeString": "\"double[]\"", + "java": { + "Supplier": "Supplier", + "ValueType": "double[]", + "WrapValueType": "Double[]", + "EmptyValue": "new double[] {}", + "FunctionTypeSuffix": "", + "EntryName": "DoubleArray", + "SupplierGet" : "get" + } + }, + { + "TypeName": "StringArray", + "TypeString": "\"string[]\"", + "java": { + "Supplier": "Supplier", + "ValueType": "String[]", + "EmptyValue": "new String[] {}", + "FunctionTypeSuffix": "", + "EntryName": "StringArray", + "SupplierGet" : "get" + } + } +] diff --git a/monologue/src/main/deploy/example.txt b/monologue/src/main/deploy/example.txt new file mode 100644 index 0000000..bb82515 --- /dev/null +++ b/monologue/src/main/deploy/example.txt @@ -0,0 +1,3 @@ +Files placed in this directory will be deployed to the RoboRIO into the +'deploy' directory in the home folder. Use the 'Filesystem.getDeployDirectory' wpilib function +to get a proper path relative to the deploy directory. \ No newline at end of file diff --git a/monologue/src/main/java/monologue/DataLogSendableBuilder.java b/monologue/src/main/java/monologue/DataLogSendableBuilder.java new file mode 100644 index 0000000..08ba5ef --- /dev/null +++ b/monologue/src/main/java/monologue/DataLogSendableBuilder.java @@ -0,0 +1,302 @@ +package monologue; + +import edu.wpi.first.networktables.NTSendableBuilder; +import edu.wpi.first.networktables.NetworkTable; +import edu.wpi.first.networktables.NetworkTableInstance; +import edu.wpi.first.networktables.Topic; +import edu.wpi.first.util.datalog.BooleanArrayLogEntry; +import edu.wpi.first.util.datalog.BooleanLogEntry; +import edu.wpi.first.util.datalog.DataLog; +import edu.wpi.first.util.datalog.DataLogEntry; +import edu.wpi.first.util.datalog.DoubleArrayLogEntry; +import edu.wpi.first.util.datalog.DoubleLogEntry; +import edu.wpi.first.util.datalog.FloatArrayLogEntry; +import edu.wpi.first.util.datalog.FloatLogEntry; +import edu.wpi.first.util.datalog.IntegerArrayLogEntry; +import edu.wpi.first.util.datalog.IntegerLogEntry; +import edu.wpi.first.util.datalog.RawLogEntry; +import edu.wpi.first.util.datalog.StringArrayLogEntry; +import edu.wpi.first.util.datalog.StringLogEntry; +import edu.wpi.first.util.function.BooleanConsumer; +import edu.wpi.first.util.function.FloatConsumer; +import edu.wpi.first.util.function.FloatSupplier; +import edu.wpi.first.wpilibj.DataLogManager; +import edu.wpi.first.wpilibj.Timer; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.BooleanSupplier; +import java.util.function.Consumer; +import java.util.function.DoubleConsumer; +import java.util.function.DoubleSupplier; +import java.util.function.LongConsumer; +import java.util.function.LongSupplier; +import java.util.function.Supplier; + +public class DataLogSendableBuilder implements NTSendableBuilder { + private static final DataLog log = DataLogManager.getLog(); + private static final NetworkTable rootTable = + NetworkTableInstance.getDefault().getTable("DataLogSendable"); + + private static Optional networkTable = Optional.empty(); + + private final Map> dataLogMap = new HashMap<>(); + private final List updateTables = new ArrayList<>(); + private final List closeables = new ArrayList<>(); + private String prefix; + + public DataLogSendableBuilder(String prefix) { + if (!prefix.endsWith("/")) { + this.prefix = prefix + "/"; + } else { + this.prefix = prefix; + } + } + + @Override + public void setSafeState(Runnable func) {} + + @Override + public void setActuator(boolean value) {} + + @Override + public void setSmartDashboardType(String type) {} + + @Override + public BackendKind getBackendKind() { + return BackendKind.kUnknown; + } + + @Override + public boolean isPublished() { + return true; + } + + @Override + public void clearProperties() { + dataLogMap.clear(); + } + + @Override + public void close() { + clearProperties(); + for (AutoCloseable c : closeables) { + try { + c.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + @Override + public void addCloseable(AutoCloseable c) { + closeables.add(c); + } + + @Override + public void addBooleanProperty(String key, BooleanSupplier getter, BooleanConsumer setter) { + if (getter != null) { + dataLogMap.put(new BooleanLogEntry(log, prefix + key), () -> getter.getAsBoolean()); + } + } + + @Override + public void addDoubleProperty(String key, DoubleSupplier getter, DoubleConsumer setter) { + if (getter != null) { + dataLogMap.put(new DoubleLogEntry(log, prefix + key), () -> getter.getAsDouble()); + } + } + + @Override + public void addStringProperty(String key, Supplier getter, Consumer setter) { + if (getter != null) { + dataLogMap.put(new StringLogEntry(log, prefix + key), getter); + } + } + + @Override + public void addRawProperty( + String key, String typeString, Supplier getter, Consumer setter) { + if (getter != null) { + dataLogMap.put(new RawLogEntry(log, prefix + key + "(" + typeString + ")"), getter); + } + } + + @Override + public void addFloatProperty(String key, FloatSupplier getter, FloatConsumer setter) { + if (getter != null) { + dataLogMap.put(new FloatLogEntry(log, prefix + key), () -> getter.getAsFloat()); + } + } + + @Override + public void addIntegerProperty(String key, LongSupplier getter, LongConsumer setter) { + if (getter != null) { + dataLogMap.put(new IntegerLogEntry(log, prefix + key), (Supplier) getter); + } + } + + @Override + public void addBooleanArrayProperty( + String key, Supplier getter, Consumer setter) { + if (getter != null) { + dataLogMap.put(new BooleanArrayLogEntry(log, prefix + key), getter); + } + } + + @Override + public void addDoubleArrayProperty( + String key, Supplier getter, Consumer setter) { + if (getter != null) { + dataLogMap.put(new DoubleArrayLogEntry(log, prefix + key), getter); + } + } + + @Override + public void addStringArrayProperty( + String key, Supplier getter, Consumer setter) { + if (getter != null) { + dataLogMap.put(new StringArrayLogEntry(log, prefix + key), getter); + } + } + + @Override + public void addFloatArrayProperty( + String key, Supplier getter, Consumer setter) { + if (getter != null) { + dataLogMap.put(new FloatArrayLogEntry(log, prefix + key), getter); + } + } + + @Override + public void addIntegerArrayProperty( + String key, Supplier getter, Consumer setter) { + if (getter != null) { + dataLogMap.put(new IntegerArrayLogEntry(log, prefix + key), getter); + } + } + + @Override + public NetworkTable getTable() { + if (networkTable.isPresent()) { + return networkTable.get(); + } else { + networkTable = Optional.of(rootTable.getSubTable(prefix)); + /// NTLogger.addNetworkTable(networkTable.get(), prefix); + return networkTable.get(); + } + } + + @Override + public void setUpdateTable(Runnable func) { + updateTables.add(func); + } + + @Override + public Topic getTopic(String key) { + return getTable().getTopic(key); + } + + @Override + public void update() { + long timestamp = (long) (Timer.getFPGATimestamp() * 1e6); + for (Map.Entry> entry : dataLogMap.entrySet()) { + var key = entry.getKey(); + var val = entry.getValue().get(); + if (key instanceof BooleanArrayLogEntry) { + ((BooleanArrayLogEntry) key).append((boolean[]) val, timestamp); + + } else if (key instanceof BooleanLogEntry) { + ((BooleanLogEntry) key).append((boolean) val, timestamp); + + } else if (key instanceof DoubleArrayLogEntry) { + ((DoubleArrayLogEntry) key).append((double[]) val, timestamp); + + } else if (key instanceof DoubleLogEntry) { + ((DoubleLogEntry) key).append((double) val, timestamp); + + } else if (key instanceof FloatArrayLogEntry) { + ((FloatArrayLogEntry) key).append((float[]) val, timestamp); + + } else if (key instanceof FloatLogEntry) { + ((FloatLogEntry) key).append((float) val, timestamp); + + } else if (key instanceof IntegerArrayLogEntry) { + ((IntegerArrayLogEntry) key).append((long[]) val, timestamp); + + } else if (key instanceof IntegerLogEntry) { + ((IntegerLogEntry) key).append((long) val, timestamp); + + } else if (key instanceof RawLogEntry) { + ((RawLogEntry) key).append((byte[]) val, timestamp); + + } else if (key instanceof StringArrayLogEntry) { + ((StringArrayLogEntry) key).append((String[]) val, timestamp); + + } else if (key instanceof StringLogEntry) { + ((StringLogEntry) key).append((String) val, timestamp); + } + } + for (Runnable updateTable : updateTables) { + updateTable.run(); + } + } + + @Override + public void publishConstBoolean(String key, boolean value) { + new BooleanLogEntry(log, prefix+key).append(value); + } + + @Override + public void publishConstInteger(String key, long value) { + new IntegerLogEntry(log, prefix+key).append(value); + } + + @Override + public void publishConstFloat(String key, float value) { + new FloatLogEntry(log, prefix+key).append(value); + } + + @Override + public void publishConstDouble(String key, double value) { + new DoubleLogEntry(log, prefix+key).append(value); + } + + @Override + public void publishConstString(String key, String value) { + new StringLogEntry(log, prefix+key).append(value); + } + + @Override + public void publishConstBooleanArray(String key, boolean[] value) { + new BooleanArrayLogEntry(log, prefix+key).append(value); + } + + @Override + public void publishConstIntegerArray(String key, long[] value) { + new IntegerArrayLogEntry(log, prefix+key).append(value); + } + + @Override + public void publishConstFloatArray(String key, float[] value) { + new FloatArrayLogEntry(log, prefix+key).append(value); + } + + @Override + public void publishConstDoubleArray(String key, double[] value) { + new DoubleArrayLogEntry(log, prefix+key).append(value); + } + + @Override + public void publishConstStringArray(String key, String[] value) { + new StringArrayLogEntry(log, prefix+key).append(value); + } + + @Override + public void publishConstRaw(String key, String typeString, byte[] value) { + new RawLogEntry(log, prefix+key).append(value); + } +} diff --git a/monologue/src/main/java/monologue/Monologue.java b/monologue/src/main/java/monologue/Monologue.java new file mode 100644 index 0000000..34970a2 --- /dev/null +++ b/monologue/src/main/java/monologue/Monologue.java @@ -0,0 +1,351 @@ +package monologue; + +import edu.wpi.first.networktables.NTSendable; +import edu.wpi.first.util.sendable.Sendable; +import edu.wpi.first.wpilibj.DriverStation; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Supplier; + +public class Monologue { + + public static final NTLogger ntLogger = new NTLogger(); + public static final DataLogger dataLogger = new DataLogger(); + public static final Map loggedRegistry = new HashMap(); + + private static String camelToNormal(String camelCase) { + StringBuilder sb = new StringBuilder(); + for (char c : camelCase.toCharArray()) { + if (Character.isUpperCase(c)) { + sb.append(' '); + } + sb.append(c); + } + sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); + return sb.toString(); + } + + private static String methodNameFix(String name) { + if (name.startsWith("get")) { + name = name.substring(3); + } else if (name.endsWith("getter")) { + name = name.substring(0, name.length() - 6); + } + name = name.substring(0, 1).toLowerCase() + name.substring(1); + return name; + } + + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.FIELD, ElementType.METHOD}) + public @interface BothLog { + public String path() default ""; + + public boolean once() default false; + + public int level() default 0; + } + + /** + * Annotate a field or method IN A SUBSYSTEM with this to log it to SmartDashboard + * + *

Supported Types(primitive or not): Double, Boolean, String, Integer,
+ * Double[], Boolean[], String[], Integer[], Sendable + * + * @param oneShot [optional] whether or not to only log once + */ + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.FIELD, ElementType.METHOD}) + public @interface DataLog { + public boolean once() default false; + + public int level() default 0; + } + + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.FIELD, ElementType.METHOD}) + public @interface NTLog { + public boolean once() default false; + + public int level() default 0; + } + + private static Supplier getSupplier(Field field, Logged loggable) { + field.setAccessible(true); + return () -> { + try { + return field.get(loggable); + } catch (IllegalArgumentException | IllegalAccessException e) { + DriverStation.reportWarning(field.getName() + " supllier is erroring", false); + e.printStackTrace(); + return null; + } + }; + } + + private static Supplier getSupplier(Method method, Logged loggable) { + return () -> { + try { + return method.invoke(loggable); + } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { + DriverStation.reportWarning(method.getName() + " supllier is erroring", false); + return null; + } + }; + } + + public static void setupLogging(Logged loggable, String rootPath, boolean createDataLog) { + System.out.println(rootPath); + loggedRegistry.put(loggable, rootPath); + String ss_name = rootPath; + for (Field field : getInheritedPrivateFields(loggable.getClass())) { + + field.setAccessible(true); + if (isNull(field, loggable)) { + + continue; + } + // if the field is of type Logged + if (Logged.class.isAssignableFrom(field.getType())) { + try { + String pathOverride = ((Logged) field.get(loggable)).getPath(); + if (pathOverride.equals("")) { + pathOverride = field.getName(); + } + // recursion for the Logged field + Monologue.setupLogging( + (Logged) field.get(loggable), ss_name + "/" + pathOverride, createDataLog); + continue; + } catch (IllegalArgumentException | IllegalAccessException e) { + DriverStation.reportWarning(field.getName() + " supllier is erroring", false); + e.printStackTrace(); + continue; + } + } + + if (field.getType().isArray()) { + try { + // If primitive array + if (Object.class.isAssignableFrom(field.get(loggable).getClass().getComponentType())) { + + // Include all elements whose runtime class is Loggable + for (Object obj : (Object[]) field.get(loggable)) { + if (obj instanceof Logged) { + try { + String pathOverride = ((Logged) obj).getPath(); + if (pathOverride.equals("")) { + pathOverride = obj.getClass().getSimpleName(); + } + Monologue.setupLogging( + (Logged) obj, + ss_name + "/" + field.getName() + "/" + pathOverride, + createDataLog); + continue; + } catch (IllegalArgumentException e) { + DriverStation.reportWarning(field.getName() + " supllier is erroring", false); + e.printStackTrace(); + } + } + } + } + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + // Proceed on all valid elements + // Handle collections similarly + } else if (Collection.class.isAssignableFrom(field.getType())) { + try { + int idx = 0; + // Include all elements whose runtime class is Loggable + for (Object obj : (Collection) field.get(loggable)) { + System.out.println(obj); + if (obj instanceof Logged) { + try { + String pathOverride = ((Logged) obj).getPath(); + if (pathOverride.equals("")) { + pathOverride = obj.getClass().getSimpleName() + "[" + idx++ + "]"; + } + Monologue.setupLogging( + (Logged) obj, + ss_name + "/" + field.getName() + "/" + pathOverride, + createDataLog); + continue; + } catch (IllegalArgumentException e) { + e.printStackTrace(); + DriverStation.reportWarning(field.getName() + " supllier is erroring", true); + } + } + } + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + if (field.getAnnotations().length == 0) { + continue; + } + // setup the annotation. + String annotationPath = ""; + boolean oneShot; + int level; + String name = field.getName(); + DataType type; + try{ + type = DataType.fromClass(field.getType()); + } catch (IllegalArgumentException e) { + DriverStation.reportWarning("Tried to log invalid type " + name + "(" + field.getType() + ") in " + ss_name, false); + continue; + } + if ((field.isAnnotationPresent(DataLog.class) || field.isAnnotationPresent(BothLog.class)) + && createDataLog) { + dataLogger.startLog(); + + DataLog annotation = field.getAnnotation(DataLog.class); + if (annotation == null) { + BothLog logAnnotation = field.getAnnotation(BothLog.class); + annotationPath = logAnnotation.path(); + oneShot = logAnnotation.once(); + level = logAnnotation.level(); + } else { + oneShot = annotation.once(); + level = annotation.level(); + } + String key = annotationPath.equals("") ? ss_name + "/" + name : annotationPath; + if (type == DataType.NTSendable) { + dataLogger.addSendable(key, (NTSendable) getSupplier(field, loggable).get()); + } else if (type == DataType.Sendable) { + dataLogger.addSendable(key, (Sendable) getSupplier(field, loggable).get()); + } else { + dataLogger.helper(getSupplier(field, loggable), type, key, oneShot, level); + } + } + if (field.isAnnotationPresent(NTLog.class) || field.isAnnotationPresent(BothLog.class)) { + + NTLog annotation = field.getAnnotation(NTLog.class); + if (annotation == null) { + BothLog logAnnotation = field.getAnnotation(BothLog.class); + annotationPath = logAnnotation.path(); + oneShot = logAnnotation.once(); + level = logAnnotation.level(); + } else { + + oneShot = annotation.once(); + level = annotation.level(); + } + String key = annotationPath.equals("") ? ss_name + "/" + field.getName() : annotationPath; + if (type == DataType.Sendable || type == DataType.NTSendable) { + ntLogger.addSendable(key, (Sendable) getSupplier(field, loggable).get()); + } else { + ntLogger.helper(getSupplier(field, loggable), type, key, oneShot, level); + } + } + } + + for (Method method :getInheritedMethods(loggable.getClass())) { + if ((method.isAnnotationPresent(DataLog.class) || method.isAnnotationPresent(BothLog.class)) + && createDataLog) { + dataLogger.startLog(); + method.setAccessible(true); + String annotationPath = ""; + boolean oneShot; + int level; + DataLog annotation = method.getAnnotation(DataLog.class); + if (annotation == null) { + BothLog logAnnotation = method.getAnnotation(BothLog.class); + annotationPath = logAnnotation.path(); + oneShot = logAnnotation.once(); + level = logAnnotation.level(); + } else { + oneShot = annotation.once(); + level = annotation.level(); + } + String name = method.getName(); // methodNameFix(method.getName()); + String path = annotationPath.equals("") ? ss_name + "/" + name : annotationPath; + + DataType type = DataType.fromClass(method.getReturnType()); + if (method.getParameterCount() > 0) { + throw new IllegalArgumentException("Cannot have parameters on a DataLog method"); + } + dataLogger.helper(getSupplier(method, loggable), type, path, oneShot, level); + } + if (method.isAnnotationPresent(NTLog.class) || method.isAnnotationPresent(BothLog.class)) { + method.setAccessible(true); + String annotationPath = ""; + boolean oneShot; + int level; + NTLog annotation = method.getAnnotation(NTLog.class); + if (annotation == null) { + BothLog logAnnotation = method.getAnnotation(BothLog.class); + annotationPath = logAnnotation.path(); + oneShot = logAnnotation.once(); + level = logAnnotation.level(); + } else { + oneShot = annotation.once(); + level = annotation.level(); + } + String key = annotationPath.equals("") ? ss_name + "/" + method.getName() : annotationPath; + DataType type = DataType.fromClass(method.getReturnType()); + if (method.getParameterCount() > 0) { + throw new IllegalArgumentException("Cannot have parameters on a DataLog method"); + } + ntLogger.helper(getSupplier(method, loggable), type, key, oneShot, level); + } + } + } + + public static void update() { + ntLogger.update(); + dataLogger.update(); + } + + public static void updateNT() { + ntLogger.update(); + } + + public static void updateDataLog() { + dataLogger.update(); + } + + private static boolean isNull(Field field, Object obj) { + field.setAccessible(true); + boolean isNull = true; + try { + isNull = field.get(obj) == null; + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return isNull; + } + + private static List getInheritedPrivateFields(Class type) { + List result = new ArrayList(); + + Class i = type; + while (i != null && i != Object.class) { + Collections.addAll(result, i.getDeclaredFields()); + i = i.getSuperclass(); + } + + return result; +} + private static List getInheritedMethods(Class type) { + List result = new ArrayList(); + + Class i = type; + while (i != null && i != Object.class) { + Collections.addAll(result, i.getDeclaredMethods()); + i = i.getSuperclass(); + } + + return result; + } +} diff --git a/monologue/src/main/java/monologue/util/GeomPacker.java b/monologue/src/main/java/monologue/util/GeomPacker.java new file mode 100644 index 0000000..86075a2 --- /dev/null +++ b/monologue/src/main/java/monologue/util/GeomPacker.java @@ -0,0 +1,113 @@ +package monologue.util; + +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.geometry.Pose3d; +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.geometry.Rotation3d; +import edu.wpi.first.math.geometry.Transform2d; +import edu.wpi.first.math.geometry.Transform3d; +import edu.wpi.first.math.geometry.Translation2d; +import edu.wpi.first.math.geometry.Translation3d; + +public class GeomPacker { + public static double[] pack(Translation2d obj) { + double[] arr = new double[2]; + arr[0] = obj.getX(); + arr[1] = obj.getY(); + return arr; + } + + public static Translation2d unpackTranslation2d(double[] arr) { + return new Translation2d(arr[0], arr[1]); + } + + public static double[] pack(Rotation2d obj) { + double[] arr = new double[1]; + arr[0] = obj.getRadians(); + return arr; + } + + public static Rotation2d unpackRotation2d(double[] arr) { + return new Rotation2d(arr[0]); + } + + public static double[] pack(Pose2d obj) { + double[] arr = new double[3]; + arr[0] = obj.getTranslation().getX(); + arr[1] = obj.getTranslation().getY(); + arr[2] = obj.getRotation().getRadians(); + return arr; + } + + public static Pose2d unpackPose2d(double[] arr) { + return new Pose2d(arr[0], arr[1], new Rotation2d(arr[2])); + } + + public static double[] pack(Transform2d obj) { + double[] arr = new double[3]; + arr[0] = obj.getTranslation().getX(); + arr[1] = obj.getTranslation().getY(); + arr[2] = obj.getRotation().getRadians(); + return arr; + } + + public static Transform2d unpackTransform2d(double[] arr) { + return new Transform2d(new Translation2d(arr[0], arr[1]), new Rotation2d(arr[2])); + } + + public static double[] pack(Translation3d obj) { + double[] arr = new double[3]; + arr[0] = obj.getX(); + arr[1] = obj.getY(); + arr[2] = obj.getZ(); + return arr; + } + + public static Translation3d unpackTranslation3d(double[] arr) { + return new Translation3d(arr[0], arr[1], arr[2]); + } + + public static double[] pack(Rotation3d obj) { + double[] arr = new double[3]; + arr[0] = obj.getX(); + arr[1] = obj.getY(); + arr[2] = obj.getZ(); + return arr; + } + + public static Rotation3d unpackRotation3d(double[] arr) { + return new Rotation3d(arr[0], arr[1], arr[2]); + } + + public static double[] pack(Pose3d obj) { + double[] arr = new double[7]; + arr[0] = obj.getTranslation().getX(); + arr[1] = obj.getTranslation().getY(); + arr[2] = obj.getTranslation().getZ(); + arr[3] = obj.getRotation().getX(); + arr[4] = obj.getRotation().getY(); + arr[5] = obj.getRotation().getZ(); + return arr; + } + + public static Pose3d unpackPose3d(double[] arr) { + return new Pose3d( + new Translation3d(arr[0], arr[1], arr[2]), new Rotation3d(arr[3], arr[4], arr[5])); + } + + public static double[] pack(Transform3d obj) { + double[] arr = new double[7]; + arr[0] = obj.getTranslation().getX(); + arr[1] = obj.getTranslation().getY(); + arr[2] = obj.getTranslation().getZ(); + arr[3] = obj.getRotation().getX(); + arr[4] = obj.getRotation().getY(); + arr[5] = obj.getRotation().getZ(); + return arr; + } + + public static Transform3d unpackTransform3d(double[] arr) { + return new Transform3d( + new Translation3d(arr[0], arr[1], arr[2]), new Rotation3d(arr[3], arr[4], arr[5])); + } +} diff --git a/test-project/.gitignore b/test-project/.gitignore new file mode 100644 index 0000000..3325f5c --- /dev/null +++ b/test-project/.gitignore @@ -0,0 +1,172 @@ +# This gitignore has been specially created by the WPILib team. +# If you remove items from this file, intellisense might break. + +### C++ ### +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +### Java ### +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +### Gradle ### +.gradle +/build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Cache of project +.gradletasknamecache + +# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 +# gradle/wrapper/gradle-wrapper.properties + +# # VS Code Specific Java Settings +# DO NOT REMOVE .classpath and .project +.classpath +.project +.settings/ +bin/ + +# IntelliJ +*.iml +*.ipr +*.iws +.idea/ +out/ + +# Fleet +.fleet + +# Simulation GUI and other tools window save file +*-window.json diff --git a/test-project/.vscode/launch.json b/test-project/.vscode/launch.json new file mode 100644 index 0000000..5b804e8 --- /dev/null +++ b/test-project/.vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "type": "wpilib", + "name": "WPILib Desktop Debug", + "request": "launch", + "desktop": true, + }, + { + "type": "wpilib", + "name": "WPILib roboRIO Debug", + "request": "launch", + "desktop": false, + } + ] +} diff --git a/test-project/.vscode/settings.json b/test-project/.vscode/settings.json new file mode 100644 index 0000000..8be11f2 --- /dev/null +++ b/test-project/.vscode/settings.json @@ -0,0 +1,29 @@ +{ + "java.configuration.updateBuildConfiguration": "automatic", + "java.server.launchMode": "Standard", + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "bin/": true, + "**/.classpath": true, + "**/.project": true, + "**/.settings": true, + "**/.factorypath": true, + "**/*~": true + }, + "java.test.config": [ + { + "name": "WPIlibUnitTests", + "workingDirectory": "${workspaceFolder}/build/jni/release", + "vmargs": [ "-Djava.library.path=${workspaceFolder}/build/jni/release" ], + "env": { + "LD_LIBRARY_PATH": "${workspaceFolder}/build/jni/release" , + "DYLD_LIBRARY_PATH": "${workspaceFolder}/build/jni/release" + } + }, + ], + "java.test.defaultConfig": "WPIlibUnitTests" +} diff --git a/test-project/.wpilib/wpilib_preferences.json b/test-project/.wpilib/wpilib_preferences.json new file mode 100644 index 0000000..3acf127 --- /dev/null +++ b/test-project/.wpilib/wpilib_preferences.json @@ -0,0 +1,6 @@ +{ + "enableCppIntellisense": false, + "currentLanguage": "java", + "projectYear": "2024beta", + "teamNumber": 6995 +} \ No newline at end of file diff --git a/test-project/FRC_20231107_081556.wpilog b/test-project/FRC_20231107_081556.wpilog new file mode 100644 index 0000000000000000000000000000000000000000..5f1567387a754cf5f4f89f5640465d42374b3031 GIT binary patch literal 1266771 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 z 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%0DyCp^ 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鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 0 HcmV?d00001 diff --git a/test-project/gradle/wrapper/gradle-wrapper.properties b/test-project/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..c5c2706 --- /dev/null +++ b/test-project/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=permwrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=permwrapper/dists diff --git a/test-project/gradlew b/test-project/gradlew new file mode 100644 index 0000000..1aa94a4 --- /dev/null +++ b/test-project/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/test-project/gradlew.bat b/test-project/gradlew.bat new file mode 100644 index 0000000..6689b85 --- /dev/null +++ b/test-project/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/test-project/networktables.json b/test-project/networktables.json new file mode 100644 index 0000000..60b0742 --- /dev/null +++ b/test-project/networktables.json @@ -0,0 +1 @@ +[] diff --git a/test-project/settings.gradle b/test-project/settings.gradle new file mode 100644 index 0000000..3e30f84 --- /dev/null +++ b/test-project/settings.gradle @@ -0,0 +1,30 @@ +import org.gradle.internal.os.OperatingSystem + +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + String frcYear = '2024' + File frcHome + if (OperatingSystem.current().isWindows()) { + String publicFolder = System.getenv('PUBLIC') + if (publicFolder == null) { + publicFolder = "C:\\Users\\Public" + } + def homeRoot = new File(publicFolder, "wpilib") + frcHome = new File(homeRoot, frcYear) + } else { + def userFolder = System.getProperty("user.home") + def homeRoot = new File(userFolder, "wpilib") + frcHome = new File(homeRoot, frcYear) + } + def frcHomeMaven = new File(frcHome, 'maven') + maven { + name 'frcHome' + url frcHomeMaven + } + } +} + +Properties props = System.getProperties(); +props.setProperty("org.gradle.internal.native.headers.unresolved.dependencies.ignore", "true"); diff --git a/test-project/simgui-ds.json b/test-project/simgui-ds.json new file mode 100644 index 0000000..73cc713 --- /dev/null +++ b/test-project/simgui-ds.json @@ -0,0 +1,92 @@ +{ + "keyboardJoysticks": [ + { + "axisConfig": [ + { + "decKey": 65, + "incKey": 68 + }, + { + "decKey": 87, + "incKey": 83 + }, + { + "decKey": 69, + "decayRate": 0.0, + "incKey": 82, + "keyRate": 0.009999999776482582 + } + ], + "axisCount": 3, + "buttonCount": 4, + "buttonKeys": [ + 90, + 88, + 67, + 86 + ], + "povConfig": [ + { + "key0": 328, + "key135": 323, + "key180": 322, + "key225": 321, + "key270": 324, + "key315": 327, + "key45": 329, + "key90": 326 + } + ], + "povCount": 1 + }, + { + "axisConfig": [ + { + "decKey": 74, + "incKey": 76 + }, + { + "decKey": 73, + "incKey": 75 + } + ], + "axisCount": 2, + "buttonCount": 4, + "buttonKeys": [ + 77, + 44, + 46, + 47 + ], + "povCount": 0 + }, + { + "axisConfig": [ + { + "decKey": 263, + "incKey": 262 + }, + { + "decKey": 265, + "incKey": 264 + } + ], + "axisCount": 2, + "buttonCount": 6, + "buttonKeys": [ + 260, + 268, + 266, + 261, + 269, + 267 + ], + "povCount": 0 + }, + { + "axisCount": 0, + "buttonCount": 0, + "povCount": 0 + } + ] +} diff --git a/test-project/simgui.json b/test-project/simgui.json new file mode 100644 index 0000000..be3e4b0 --- /dev/null +++ b/test-project/simgui.json @@ -0,0 +1,26 @@ +{ + "NTProvider": { + "types": { + "/FMSInfo": "FMSInfo", + "/Robot/field": "Field2d", + "/Robot/mech": "Mechanism2d" + } + }, + "NetworkTables": { + "retained": { + "Robot": { + "open": true + } + }, + "transitory": { + "Robot": { + "Transform2d##v_/Robot/imperative": { + "Translation2d##v_translation": { + "open": true + } + }, + "open": true + } + } + } +} diff --git a/test-project/src/main/java/frc/robot/Geometry.java b/test-project/src/main/java/frc/robot/Geometry.java new file mode 100644 index 0000000..dc7eade --- /dev/null +++ b/test-project/src/main/java/frc/robot/Geometry.java @@ -0,0 +1,73 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot; + +import monologue.Monologue.BothLog; +import monologue.Logged; +import edu.wpi.first.math.geometry.*; + +/** Add your docs here. */ +public class Geometry implements Logged { + @BothLog + public String getStringPath() + { + return getFullPath(); + } + @BothLog private Pose2d m_pose2d = new Pose2d(); + + @BothLog + private Pose2d getPose2d() { + return m_pose2d; + } + + @BothLog private Translation2d m_translation2d = new Translation2d(); + + @BothLog + private Translation2d getTranslation2d() { + return m_translation2d; + } + + @BothLog private Transform2d m_transform2d = new Transform2d(); + + @BothLog + private Transform2d getTransform2d() { + return m_transform2d; + } + + @BothLog private Rotation2d m_rotation2d = new Rotation2d(); + + @BothLog + private Rotation2d getRotation2d() { + return m_rotation2d; + } + + @BothLog private Pose3d m_pose3d = new Pose3d(); + + @BothLog + private Pose3d getPose3d() { + return m_pose3d; + } + + @BothLog private Translation3d m_translation3d = new Translation3d(); + + @BothLog + private Translation3d getTranslation3d() { + return m_translation3d; + } + + @BothLog private Transform3d m_transform3d = new Transform3d(); + + @BothLog + private Transform3d getTransform3d() { + return m_transform3d; + } + + @BothLog private Rotation3d m_rotation3d = new Rotation3d(); + + @BothLog + private Rotation3d getRotation3d() { + return m_rotation3d; + } +} diff --git a/test-project/src/main/java/frc/robot/Internal.java b/test-project/src/main/java/frc/robot/Internal.java new file mode 100644 index 0000000..46b76c9 --- /dev/null +++ b/test-project/src/main/java/frc/robot/Internal.java @@ -0,0 +1,52 @@ +package frc.robot; + +import monologue.Monologue.BothLog; +import monologue.Logged; +import io.github.oblarg.oblog.Loggable; +import io.github.oblarg.oblog.annotations.Log; + +public class Internal implements Logged, Loggable { + + private int calls = 0; + private String name; + private String showName; + + public Internal(String name) { + this.name = name + "asdfghjklqwertyuiopzxcvbnm,qwertyuio"; + showName = this.name; + } + ; + + @Override + public String getPath() { + // TODO Auto-generated method stub + return name; + } + + @Override + public String configureLogName() { + // TODO Auto-generated method stub + return name; + } + + // @Log + // @NTLog + // public String name="name"; + // @Log + // @DataLog + public String getName() { + calls++; + return showName; + } + + @Log + @BothLog + public double getNumber() { + calls++; + return calls + calls / 1000.0; + } + + public void update() { + showName = name + calls; + } +} diff --git a/test-project/src/main/java/frc/robot/Main.java b/test-project/src/main/java/frc/robot/Main.java new file mode 100644 index 0000000..8776e5d --- /dev/null +++ b/test-project/src/main/java/frc/robot/Main.java @@ -0,0 +1,25 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot; + +import edu.wpi.first.wpilibj.RobotBase; + +/** + * Do NOT add any static variables to this class, or any initialization at all. Unless you know what + * you are doing, do not modify this file except to change the parameter class to the startRobot + * call. + */ +public final class Main { + private Main() {} + + /** + * Main initialization function. Do not perform any initialization here. + * + *

If you change your main robot class, change the parameter type. + */ + public static void main(String... args) { + RobotBase.startRobot(Robot::new); + } +} diff --git a/test-project/src/main/java/frc/robot/Robot.java b/test-project/src/main/java/frc/robot/Robot.java new file mode 100644 index 0000000..4bae577 --- /dev/null +++ b/test-project/src/main/java/frc/robot/Robot.java @@ -0,0 +1,142 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot; + +import monologue.Monologue; +import monologue.Monologue.BothLog; +import monologue.Monologue.DataLog; +import monologue.Monologue.NTLog; +import monologue.Logged; +import edu.wpi.first.math.filter.LinearFilter; +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.geometry.Transform2d; +import edu.wpi.first.networktables.NetworkTableInstance; +import edu.wpi.first.wpilibj.TimedRobot; +import edu.wpi.first.wpilibj.Timer; +import edu.wpi.first.wpilibj.smartdashboard.Field2d; +import edu.wpi.first.wpilibj.smartdashboard.Mechanism2d; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; +import io.github.oblarg.oblog.Loggable; +import io.github.oblarg.oblog.Logger; +import java.util.ArrayList; + +/** + * The VM is configured to automatically run this class, and to call the functions corresponding to + * each mode, as described in the TimedRobot documentation. If you change the name of this class or + * the package after creating this project, you must also update the build.gradle file in the + * project. + */ +public class Robot extends TimedRobot implements Logged, Loggable { + @BothLog(once=true) private int samples = 0; + boolean useOblog = false; + boolean dataLog = false; + + ArrayList m_internals = new ArrayList<>(); + private LinearFilter filter = LinearFilter.movingAverage(50); + double totalOfAvgs = 0; + double avgsTaken = 0; + + private Geometry m_geometry = new Geometry(); + + @NTLog @DataLog private Field2d field = new Field2d(); + + @BothLog private Mechanism2d mech = new Mechanism2d(1, 1); + @BothLog private long[] array = {0, 1, 2}; + + /** + * This function is run when the robot is first started up and should be used for any + * initialization code. + */ + @Override + public void robotInit() { + SmartDashboard.putBoolean("bool", true); + Monologue.dataLogger.addNetworkTable( + NetworkTableInstance.getDefault().getTable("SmartDashboard")); + // for (int i = 0; i < 100; i++) { + // m_internals.add(new Internal(i + "")); + // } + // DataLogManager.start(); + NetworkTableInstance.getDefault().getTopic("name").getGenericEntry(); + if (useOblog) { + Logger.configureLoggingAndConfig(this, false); + } else { + Monologue.setupLogging(this, "/Robot", true); + } + put("imperative", new Transform2d()); + } + + @BothLog + public String getStringPath() + { + return getFullPath(); + } + @Override + public void robotPeriodic() { + var timeBefore = Timer.getFPGATimestamp() * 1e6; + if (useOblog) { + Logger.updateEntries(); + } else { + if (true) { + Monologue.updateDataLog(); + Monologue.updateNT(); + } else { + Monologue.updateNT(); + } + } + var timeAfter = Timer.getFPGATimestamp() * 1e6; + samples++; + double avg = filter.calculate(timeAfter - timeBefore); + if (samples % 500 == 0 && samples < (500 * 8) + 50) { + System.out.println(avg); + totalOfAvgs += avg; + avgsTaken++; + } + if (samples == 500 * 8) { + System.out.println("Final Result: Oblog:" + useOblog + " DataLog:" + dataLog); + System.out.println(totalOfAvgs / avgsTaken); + } + field.getRobotObject().setPose(new Pose2d(samples / 100.0, 0, new Rotation2d())); + // m_internals.forEach(Internal::update); + put("stringValue", samples + ""); + SmartDashboard.putBoolean(getPath(), dataLog); + } + + @Override + public void autonomousInit() {} + + @Override + public void autonomousPeriodic() {} + + @Override + public void teleopInit() {} + + @Override + public void teleopPeriodic() {} + + @Override + public void disabledInit() {} + + @Override + public void disabledPeriodic() {} + + @Override + public void testInit() {} + + @Override + public void testPeriodic() {} + + @Override + public void simulationInit() {} + + @Override + public void simulationPeriodic() {} + + @Override + public String getPath() { + // TODO Auto-generated method stub + return "Robot"; + } +} diff --git a/test-project/vendordeps/WPILibNewCommands.json b/test-project/vendordeps/WPILibNewCommands.json new file mode 100644 index 0000000..67bf389 --- /dev/null +++ b/test-project/vendordeps/WPILibNewCommands.json @@ -0,0 +1,38 @@ +{ + "fileName": "WPILibNewCommands.json", + "name": "WPILib-New-Commands", + "version": "1.0.0", + "uuid": "111e20f7-815e-48f8-9dd6-e675ce75b266", + "frcYear": "2024", + "mavenUrls": [], + "jsonUrl": "", + "javaDependencies": [ + { + "groupId": "edu.wpi.first.wpilibNewCommands", + "artifactId": "wpilibNewCommands-java", + "version": "wpilib" + } + ], + "jniDependencies": [], + "cppDependencies": [ + { + "groupId": "edu.wpi.first.wpilibNewCommands", + "artifactId": "wpilibNewCommands-cpp", + "version": "wpilib", + "libName": "wpilibNewCommands", + "headerClassifier": "headers", + "sourcesClassifier": "sources", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "linuxathena", + "linuxarm32", + "linuxarm64", + "windowsx86-64", + "windowsx86", + "linuxx86-64", + "osxuniversal" + ] + } + ] +}