1+ package com.team4099.robot2026.subsystems.hopper
2+
3+ import org.littletonrobotics.junction.LogTable
4+ import org.littletonrobotics.junction.inputs.LoggableInputs
5+ import org.team4099.lib.units.base.Current
6+ import org.team4099.lib.units.base.amps
7+ import org.team4099.lib.units.base.celsius
8+ import org.team4099.lib.units.base.inAmperes
9+ import org.team4099.lib.units.base.inCelsius
10+ import org.team4099.lib.units.derived.degrees
11+ import org.team4099.lib.units.derived.inVolts
12+ import org.team4099.lib.units.derived.volts
13+ import org.team4099.lib.units.inDegreesPerSecond
14+ import org.team4099.lib.units.inDegreesPerSecondPerSecond
15+ import org.team4099.lib.units.perSecond
16+
17+ interface HopperIO {
18+ class HopperIOInputs : LoggableInputs {
19+ // Hopper Inputs
20+ var hopperVelocity = 0.0 .degrees.perSecond
21+ var hopperAcceleration = 0.0 .degrees.perSecond.perSecond
22+ var hopperAppliedVoltage = 0.0 .volts
23+ var hopperStatorCurrent = 0.0 .amps
24+ var hopperSupplyCurrent = 0.0 .amps
25+ var hopperTemp = 0.0 .celsius
26+ var isSimulating = falase
27+ override fun toLog (table : LogTable ) {
28+ table.put(" hopperVelocityPerSecond" , hopperVelocity.inDegreesPerSecond)
29+ }
30+ override fun getLog (table : LogTable ){
31+ table.get(" hopperVelocityPerSecond" , hopperVelocity.inDegreesPerSecond){
32+ hopperVelocity = it.hopperVelocity.inDegreesPerSecond
33+ }
34+ }
35+ override fun toLog (table : LogTable ){
36+ table.put(" hopperAcceleration" , hopperAcceleration.inDegrees)
37+ table.put(" hopperAccelerationPerSecond" , hopperAcceleration.inDegreesPerSecond.inDegreesPerSecond)
38+ }
39+
40+ override fun getLog (table : LogTable ){
41+ table.get(" hopperAcceleration" , hopperAcceleration.inDegreesPerSecond.inDegreesPerSecond).let {
42+ hopperAcceleration = it.inDegreesPerSecond.inDegreesPerSecond
43+ }
44+ }
45+ override fun toLog (table : LogTable ){
46+ table.put(" hopperAppliedVoltage" , hopperAppliedVoltage.inVolts)
47+ }
48+ override fun getLog (table : LogTable ){
49+ table.get(" hopperAppliedVoltage" , hopperAppliedVoltage.inVolts){
50+ hopperAppliedVoltage = it.inVolts
51+ }
52+ }
53+ override fun toLog (table : LogTable ){
54+ table.put(" hopperStatorCurrent" ,){
55+
56+ }
57+ }
58+ fun updateInputs (inputs : hopperInputs) {
59+
60+ }
61+ fun setVoltage (voltage : hopperSetVoltage) {
62+
63+ }
64+
65+ fun setPosition (position : hopperSetPosition) {
66+
67+ }
68+ fun setBrakeMode (brake : Boolean ) {
69+
70+ }
71+ fun configFF (
72+ kG : ElectricalPotential ,
73+ kS : StaticFeedforward <Volt >,
74+ kV : VelocityFeedforward <MeasurementUnit , Volt >,
75+ kA : AccelerationFeedforward <MeasurementUnit , Volt >
76+ ) {
77+
78+ }
79+ }
80+ }
0 commit comments